2017-12-15 12 views
-1

이것이 내 문제입니다. 내가 처음 로그가있는 것을 알고자바 스크립트 가변 범위 관련 호이스트

enter image description here

<html> 
<head> 
</head> 
<body> 
    <script> 
     var name; 
     console.log(name); 
     name = "abcdefg"; 
     console.log(name); 
    </script> 
</body> 
</html> 

이 코드의 출력은에 정의되지 않은 때문에 ㅏ 말했다.

이미 새로 고침을 시도하고 캐시를 삭제하고 이유를 이해하지 못합니다. 도와주세요.

+0

동일하지 않을 수 있습니다? 당신은 이미 이것이 일어나는 이유를 이미 알고 있습니다. – Tushar

+1

문제를 재현 할 수 없습니다. – Li357

+0

정확히 이것을 재현 할 수 없습니다. – UDID

답변

2

namewindow의 예약 된 변수 이름입니다. 따라서 처음으로 name에 액세스 할 때 (var name이 재정의하지 않음) 덮어 쓰지 않으면 전역 속성 window.name이 표시됩니다. 첫 번째 console.log에서 귀하의 경우

당신은 뭔가 undefined 다를 수 있지만, 문제는 무엇인가 abcdefg

<html> 
 
<head> 
 
</head> 
 
<body> 
 
    <script> 
 
     var name; 
 
     console.log(name); 
 
     name = "abcdefg"; 
 
     console.log(name); 
 
     console.log(window.name); 
 
    </script> 
 
</body> 
 
</html>

+0

@SurenSrapyan 네 말이 맞아. 내 창. 이름 값이 변경되었습니다. – rura6502