728x90
function foo() {
var a = b = 0;
}
-> a는 지역변수지만 b는 전역변수가 된다.
이런 일이 생기는 이유는 평가(evaluation)가 오른쪽에서 왼쪽으로 진행되기 때문
먼저 b=0 이라는 표현식을 평가되는데, 이 때 b는 선언되지 않은 상태.
이 표현식의 반환 값 0은 다시 var a로 선언된 새로운 지역 변수에 할당.
위를 정리하면
var a = (b = 0);
그래서 제대로 사용하려면
function foo() {
var a, b;
a = b = 0;
}
으로.. var로 반드시 선언하고 사용.
반응형
'◇ 팁?!? > 개발' 카테고리의 다른 글
highchart가 좋으냐 d3.js이 좋으냐 (0) | 2016.10.20 |
---|---|
javascript [==, !=] vs [===, !==] (0) | 2016.08.02 |
Web RGB Color 검색 (0) | 2016.06.09 |
ms-sql 중복된 행 갯수 구하기 (0) | 2015.12.11 |
ms-sql primary key 생성 (0) | 2015.12.11 |