據我所知在函數內聲明的變量是局部變量(使用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/)。 –