필자가 알고있는 한, 함수 내에서 선언 된 변수는 지역 변수 (var
키워드 사용 여부)입니다. 그렇다면이 출력은 왜 5
입니까? x
이 func1
으로 만 알려져 있기 때문에 func2
을 호출 할 때 ReferenceError
을 받아야하지 않습니까? 당신이함수 내부에서 전역 변수 만들기 - 이것이 왜 작동합니까?
function func1(){
var x = 5;
}
로 정의하지 않았기 때문에
<script>
function func1(){
x = 5;
}
function func2(){
document.write(x);
}
func1();
func2();
</script>
_ "함수 내에서 선언 된 변수"_, 당신이 didnt는 : 엄격 모드에서
, 당신의 코드에서 오류가 발생합니다 'let' 또는'var'을 사용하지 않았기 때문에. –
변수는'val'로 선언 할 때 지역 변수입니다. 그렇지 않으면 그들은 글로벌입니다. –
[JavaScript Scope] (https://toddmotto.com/everything-you-wanted-to-know-about-javascript-scope/)을 읽어보십시오. –