2016-07-28 2 views
0

var a = 5을 입력하고 Chrome 브라우저 콘솔에 입력하면 정의되지 않은 값을 반환하지만 입력 할 때 a = 5을 입력하면 브라우저 콘솔에서 로컬 변수와 전역 변수의 차이가 조금 의심 스럽습니다.Chrome 브라우저 콘솔 전역 변수

답변

4

이것은 로컬 변수와 전역 변수와 아무 관련이 없습니다. 그것은 단지 콘솔이 당신에게 성명서의 결과임을 보여주는 것입니다. var 문에는 결과가 없으므로 undefined이 표시됩니다. 할당 문 do 결과 (할당 된 값)가 있으므로 해당 값이 표시됩니다. 당신이

var a = 5; 
a 

을 한 경우

... 당신은 undefined5 다음에 볼 것.


1 기술적으로, 그것은 대입 표현식을 포함하는 표현 문입니다.

0

a=5을 작성할 때 내 이해에 따라 전역 변수가 작성됩니다. 그래서 그것은 window 객체의 일부가 될 것입니다. 그러므로 당신은 그 가치를 얻습니다.

을 입력하면 새 변수 (참조)가 만들어지고 값이 설정됩니다. 따라서 undefined이 표시됩니다.

테스트를 위해 다음 코드를 사용해 볼 수도 있습니다.

var a = {}; 
a.b = 5; 

5하지 undefined를 반환합니다.

+0

여기에 의심의 여지가 있으므로 첫 번째 새로운 참조 변수는 값이 참조 변수 –

+0

에 할당 된 후 정의되지 않은 값을 반환합니다. 그래서 컴파일러는 새로운 레퍼런스를 생성해야하므로, 레퍼런스를 생성하고 값을 반환하고 * 설정 값 * 동작을 비동기로 만듭니다. – Rajesh