수색…


var 선언의 할당 체인.

할당을 var 선언의 일부로 연결하면 실수로 전역 변수가 만들어집니다.

예 :

(function foo() {    
    var a = b = 0;
})()
console.log('a: ' + a);
console.log('b: ' + b);

결과는 다음과 같습니다.

Uncaught ReferenceError: a is not defined
'b: 0'

위의 예에서 a 는 로컬이지만 b 는 글로벌이됩니다. 이것은 = 연산자의 오른쪽에서 왼쪽으로의 평가 때문입니다. 위의 코드는 실제로 다음과 같이 평가됩니다.

var a = (b = 0);

var 할당을 연결하는 올바른 방법은 다음과 같습니다.

var a, b;
a = b = 0;

또는:

var a = 0, b = a;

이렇게하면 ab 가 모두 지역 변수가됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow