JS 기준 - 변수, 범위, 메모리

(1) 새로운 키워드를 생성하는 참조 형식이고;
예를 들면. VAR 상자 = 새 개체 ();
     box.name = "린다"; // 참조 형식이 문제 속성 없습니다 추가
    경고 (box.name);
2 출력의 기본 유형의 추가 속성 미정
예를 들면. VAR 상자 = "린다";
     box.height = 185;
   경고 (box.height); // 정의되지 않은
도 3은, 가변 복사본의 값은 : 원시 형 값 자체를 복사 어드레스 참조 타입을 복사한다.
예. 기본 복사 가변형 (즉 개의 가변 동작은 서로 독립적으로)
     var에 STR1 = "리";
       STR2 = STR1이었다;
       STR1 = "안녕하세요";
       CONSOLE.LOG (STR1); // 안녕하세요
       CONSOLE.LOG (STR2); // 리
예. 복사 참조 형 변수 (박스와 BOX2가 변경되는 경우 속성 이름이 같은 변수에 점이며, box.name box2.name의 값에 따라 변경한다)
        var에 STR3 = 새 개체 ();
        str3.name = "밥";
        STR4 = STR3이었다;
        CONSOLE.LOG (str3.name); // 밥
        CONSOLE.LOG (str4.name); // 밥
4, 송신 파라미터 : 매개 변수가 직접 값, 참조 (로컬 변수)로 전달되지 않는 경우에도, 가변 염기성 점과 참조 타입.
예를 들어. 전송 매개 변수의 기본 유형
  함수 FN (NUM)는 {// NUM 로컬 변수
         A + = 10;
         확실히 반환;
       }
       VAR의 N = 50;
       결과 = FN (NUM)이었다;
       CONSOLE.LOG (결과) // 60
       CONSOLE.LOG (NUM) // 50 개 관계없이 로컬 변수 상술
예. 송신 파라미터 참조 형식
 함수 재미 (OBJ) {
          obj.address = "시추";
        }
        var에 P = 새 개체 ();
        재미 (P);
        CONSOLE.LOG (p.address); // 쓰촨
(5) 검색 유형 :
1) 대해서 typeof (일반적으로 데이터 유형을 검출하는)
예를 들면. = 진정한 의지했다;
        CONSOLE.LOG (대해서 typeof 타이); // 부울
오브젝트의 종류가 검출 어떤 2) instanceof는 (: 배열, 문자열 등)
예를 들면. 했다 TY1 = [1, 25, 59, 265];
        CONSOLE.LOG (TY1의 instanceof는 어레이) 어레이 해당 유무를 검출 //
        했다 TY2 = {};
        CONSOLE.LOG (TY2의 instanceof를 개체); // 개체가 사실 여부를 검출
        VAR의 TY3 = / g /;
        참 양성 여부를 검출 //; CONSOLE.LOG (정규식 instanceof를 TY3)
        var에 TY4 = 새로운 문자열 ( "린다");
6 범위 및 실행 환경
다른 데이터 실행 환경은 함수 나 변수에 액세스 할 수 있고, 자신의 행동을 결정 정의합니다.
글로벌 실행 환경, 즉, window 객체 환경에 가장 말초 지점입니다
     var에 BOX1 = "파란색";
        setBox 함수 () {
          CONSOLE.LOG (BOX1); // 액세스 전역 변수
        }
        setBox (); // 기능을 수행
    var boxn="hello";
        function getBox(){
          console.log(window.boxn);//全局变量即window的属性
        }
        window.getBox();//全局函数即window的方法
eg.通过传参替换函数体内的局部变量,但是作用域仅限于函数体内的局部环境
  var boxn="hello";
        function getBox(boxn){//通过传参替换了全局变量
          console.log(boxn);//WORLD
        }
        getBox("WORLD");
        console.log(boxn);//hello
eg.每个函数调用时都会创建自己的执行环境,执行后把控制权交给上一级的执行环境
        var color="yellow";
        function setColor(){
          function getColor() { //getColor的执行环境在getColor内
            var color1 = "green";
            console.log(color);//yellow
            console.log(color1);//green
          }
          getColor();
        }
        setColor();
7、没有局部作用域:if语句、for语句
eg.var关键字在函数体内的意义
function number(number1,number2) {
          var sum = number1 + number2; //此时sum是局部变量,去掉var就是全局,报错
          return sum;
        }
        console.log(number(15,20));
        console.log(sum);//报错 sum is undefined
8、内存问题
javaScript会自行管理内存分配及无用内存的回收
一般来说确保占用最少的内存可让页面获得更好的性能,那么优化内存的最佳方案就是一旦数据不再有用,就将其设置为null来释放引用即解除应用.
eg.var p = {
   name:"hello"
  }
  p = null;

추천

출처www.cnblogs.com/LindaBlog/p/10984192.html