PHP中文网2017-06-21 09:38:13
<script> var bar=function(){ var foo=function(){} foo=10; } var foo=1; bar(); alert(foo); </script>
js 선언 부분이 맨 위에 배치되어 있고, 함수 내부의 foo는 지역 변수이므로 전역 foo에 영향을 주지 않습니다.
ringa_lee2017-06-21 09:37:34
1 함수 선언이 맨 위에 위치합니다
2 변수 선언도 맨 위에 위치합니다
3 함수 선언이 변수 선언보다 맨 위에 위치합니다 :)
4 js 엔진에서 구문 분석할 때 변수와 대입문이 함께 작성됩니다. , 선언과 할당 두 부분으로 나누어집니다. , 선언은 맨 위에 있고 할당은 원래 위치에 유지됩니다.
5선언된 변수는 반복적으로 선언되지 않습니다
위 사항을 참조하면 이해하실 수 있습니다. 이유!
코드의 실제 효과는 다음과 같습니다.
function bar(){ function foo(){} var foo;//实际上无效 foo=10; } var foo; bar(); foo=1; console.log(foo);