함수 역할 영역, 블록 급 역할 영역 과 품사 역할 영역

7518 단어
취지:
점점 신기해 지 는데...
내용:JavaScript 역할 영역: 변수, 대상 및 함수 의 집합 에 접근 할 수 있 습 니 다.
1. 함수 역할 영역
함수 내 에서 설명 하 는 모든 변 수 는 함수 내 에서 항상 볼 수 있 고 전체 함수 의 범위 내 에서 사용 하고 재 활용 할 수 있 습 니 다.
2. 블록 급 역할 영역
변수 가 설명 하 는 코드 세그먼트 외 에는 보이 지 않 는 다 는 뜻 입 니 다.참고: JavaScriptES6let.
3. 어법 작용 영역
함수 가 그들의 역할 영역 에서 실행 되 는 것 을 정의 하 는 것 을 말 합 니 다. 그들의 역할 영역 에서 실행 되 는 것 이 아니 라 const 사용 하 는 것 은 품사 역할 영역 이 고 정적 역할 영역 이 라 고도 합 니 다.
var name = 'Mr.Han';
function test(){
    alert(name);//undefined
    var name = 'Mrs.Han';
    alert(name);//'Mrs.Han'
}
test();
var value = 1;

function foo() {
    console.log(value);
}

function bar() {
    var value = 2;
    foo();
}

bar();//1

4. 기타:
4.1. 할당 해제
4.1.1 대상 의 할당 해제
대상 의 지정 속성 을 빠르게 가 져 옵 니 다:
var person = {
    name: '  ',
    age: 18,
    sex: ' '
};
var {name, age, sex} = person;
// name, age, passport          :
console.log('name : ' + name + ', age : ' + age + ', sex : ' + sex);//name :   , age : 18, sex :  

상기 대상 에 존재 하지 않 는 속성 을 가 져 오 면 되 돌아 갑 니 다 JavaScript. 그러나 우 리 는 기본 값 을 줄 수 있 습 니 다. 예 를 들 어:
var person = {
    name: '  ',
    age: 18,
    sex: ' '
};
var {name, age, sex, height="1.7"} = person;
console.log('name : ' + name + ', age : ' + age + ', sex : ' + sex+ ', height : ' + height);//name :   , age : 18, sex :  , height : 1.7

이렇게 하면 undefined 대상 에 존재 하지 않 는 속성 person 에 기본 값 height 을 추가 합 니 다.
4.1.2 배열 재 구성 할당 값
var [x, y, z] = [100, 200, 300];
// x, y, z            :
console.log('x : ' + x + ', y : ' + y + ', z : ' + z);//x : 100, y : 200, z : 300

여러 변 수 는 [...] 로 묶 어야 한다.
4.2 폐쇄
간단 한 이해: 다른 함수 내부 변 수 를 읽 을 수 있 는 함수 (또는 함수 내부 에 정 의 된 함수) 입 니 다.
4.2.1 이 예 를 보면
var name = "The Window";

var object = {
    name : "My Object",
    getNameFunc : function(){
        return function(){
            return this.name;
        };
    }
};
console.log(object.getNameFunc()());//"The Window"
var name = "The Window";
var object = {
    name : "My Object",
    getNameFunc : function(){
        var that = this;
        return function(){
            return that.name;
        }; 
    }
};
console.log(object.getNameFunc()());//"My Object"

4.2.2 순차 출력 숫자 1.7:
for(var i = 0;i < 10;i++){
   setTimeout(()=>{
        console.log(i),1000;
    })
}

출력 결과: 0-9.
수정:
for(var i = 0;i < 10;i++){
    (function(arg){
         setTimeout(()=>{
            console.log(arg),1000;
        })
    })(i);
}

패 킷 을 추가 하여 i 를 함수 매개 변수 로 내부 함수 에 전달 합 니 다.
for(var i = 0;i < 10;i++){
    (function(){
        var temp = i;
         setTimeout(()=>{
            console.log(temp),1000;
        })
    })();
}

또는 새로 추 가 된 패 킷 에서 i 를 부분 변수 로 내부 함수 에 전달 합 니 다.
결어:
긴 여정 길, 갈수 록 멋 져!
다음으로 전송:https://juejin.im/post/5cda863bf265da036902b965

좋은 웹페이지 즐겨찾기