据我所知在函数内声明的变量是局部变量(使用var
关键字或不)。 如果是这样,那么为什么这个输出5
?当致电func2
时,我不应该得到ReferenceError
,因为只有func1
才知道x
?在函数内部创建全局变量 - 为什么这会起作用?
<script>
function func1(){
x = 5;
}
function func2(){
document.write(x);
}
func1();
func2();
</script>
_ “的函数内声明的变量” _,你没有做因为你没有使用'let'或'var' –
当用'val'声明时,变量是本地的。否则他们是全球性的。 –
阅读[JavaScript范围](https://toddmotto.com/everything-you-wanted-to-know-about-javascript-scope/)。 –