변수, 역할 영역 문제

6344 단어 독서 노트

기본 유형 및 참조 유형 값

  • 액세스 변수 1.1 기본 데이터 유형: 값별 액세스 1.2.인용 유형: 인용 접근에 따라 속성과 방법을 동적으로 추가할 수 있음
  • 복제 변수 값 2.1 한 변수에서 다른 변수로 기본 유형의 값을 복제한다. 이후 이 두 변수는 어떠한 조작에도 참여할 수 있어 서로 영향을 주지 않는다
    var num1 = 5;
    var num2 = num1;
    
    num2 = 10;
    
    alert(num2);    //10
    alert(num1);    //5
    2.2 한 변수에서 다른 변수로 인용 유형의 값을 복제한다. 두 변수는 실제적으로 같은 대상을 인용하기 때문에 그 중 하나를 바꾸면 다른 변수
    var obj1 = new Object();
    var obj2 = obj1;
    obj1.name = "Leo";
    alert(obj2.name);   //"Leo"
  • 에 영향을 미친다.
  • 매개 변수 3.1을 전달하는 모든 함수의 매개 변수(기본 유형이든 대상이든)는 값에 따라 전달된다.(값을 한 변수에서 다른 변수로 복사하는 것과 같다. 기본 유형 값의 전달은 기본 유형 변수의 복제와 같고, 인용 유형 값의 전달은 인용 유형 변수의 복제와 같다. 2)
    //        (  )         
    function setName(obj)   
    {
        obj.name = "Leo";
        obj = new Object();
        obj.name = "Greg";
    }
    var person = new Object();      //          person 
    setName(person);        //person            
    alert(person.name);     //"Leo"。        ,      ,  person.name      "Greg" 。
  • 검측 유형(typeof vs instanceof) 4.1 typeof 조작부호는 기본 데이터 유형을 검측하는 유능한 조수:
    var s = "Leo";
    var b = true;
    var i = 22;
    var u;
    var n = null;
    var o = new Object();
    var f = function(){};
    var r = /\d+/;
    
    alert(typeof s);    //String
    alert(typeof b);    //Boolean
    alert(typeof i);    //Number
    alert(typeof u);    //undefined
    alert(typeof n);    //Object
    alert(typeof o);    //Object
    alert(typeof f);    //function
    alert(typeof r);    //Safari 5/Chrome 7-:function,IE/Firefox:object
    4.2 instanceof 조작부호: 검측이 어떤 유형의 대상
    //    
    result = variable instanceof constructor
    
    //ps:          Object   ,            Object          true
    
    //              ,   true
    alert(person instanceof Object);    //  perosn Object ?
    alert(colors instanceof Array);     //  colors Array ?
    alert(pattern instanceof RegExp);   //  pattern RegExp ?
  • 실행 환경 및 역할 영역

  • 연장작용역체인은 다음 문장에 흘러들어갈 때 작용역체인이 길어진다. 1.1try-catch문장의catch블록1.2with문장(with문장의 역할은 코드의 작용역을 특정한 대상에 설정하는 것이다)
  • 블록급 작용역이 다른 클래스 c의 언어에 없고 괄호로 폐쇄된 코드 블록은 모두 자신의 작용역이 있으며 js는 이런 블록급 작용역이 없다.두 가지 예:
    //example 1
    if(true)
    {
        var color = "blue";
    }
    alert(color);   //"blue"(      c、c++ java ,color  if          )
    
    //example 2
    for(var i = 0; i < 10; i ++)
    {
        doSomething(i);
    }
    alert(i);   //10
    2.1 선언 변수 - 기본 개념(상)의 데이터 유형에 있는 "변수"지식 포인트를 참조합니다. 또한 변수를 초기화하기 전에 반드시 먼저 선언해야 합니다. 예기치 않은 오류가 발생하지 않도록 2.1 조회 식별자 검색은 부분적인 환경에서 시작하여 역할 체인을 따라 올라가고 일단 찾으면 검색을 멈추고 더 이상 위로 검색하지 않습니다.

  • 쓰레기 수집

  • 자동 쓰레기 수집 메커니즘: 고정된 시간 간격에 따라 주기적으로 더 이상 사용하지 않는 변수를 찾아내고 그들이 차지하는 메모리를 방출한다.
  • 무용 변수를 표시하는 정책(스팸 수집 시간 간격은 브라우저의 실현에 따라 다르다)
  • 태그 지우기
  • 현재 주류의 쓰레기 수집 알고리즘.이런 알고리즘의 사상은 현재 사용하지 않는 값에 표시를 한 다음에 그 메모리를 회수하는 것이다
  • 역할 영역에서 벗어나는 값은 자동으로 회수 가능한 것으로 표시되므로 쓰레기 수집 기간에 삭제
  • 인용 계수(흔하지 않고 순환 인용 문제를 초래할 수 있음)

  • 소결

  • 기본 유형 값과 참조 유형 값은 다음과 같은 특징을 가진다.
  • 기본 유형 값은 메모리에서 고정된 크기의 공간을 차지하고 창고에 저장
  • 인용 형식의 값은 대상이며 메모리에 저장
  • 한 변수에서 다른 변수로 기본 형식의 값을 복사하면 이 값의 복사본
  • 을 만들 수 있습니다.
  • 인용 유형 값을 포함하는 변수는 사실상 대상 자체가 아니라 대상을 가리키는 지침
  • 이다.
  • 한 변수에서 다른 변수로 인용 유형의 값을 복제하는데 복제하는 것은 사실 지침이기 때문에 두 변수는 최종적으로 같은 대상을 가리킨다
  • 하나의 값이 어떤 기본 유형인지 typeof 조작부호를 사용할 수 있고, 하나의 값이 어떤 인용 유형인지 instanceof 조작부호를 사용할 수 있는지 확인
  • 좋은 웹페이지 즐겨찾기