關(guān)于未聲明的全局變量的訪問問題
請問一下,有沒有人知道這么一個問題,就是:
console.log('window.k == null',window.k == null);/*true*/
console.log('window.k == undefined',window.k == undefined);/*true*/
console.log('window.k == k',window.k == k);/*Uncaught ReferenceError: k is not defined:后面這個k報錯*/
其中k是沒有定義的,當(dāng)k定義了之后,
window.k == k 就是true了,
咩有定義的時候,console.log(window.k)是undefined
但是console.log(k)就報錯,有人知道這個是為什么嘛?
理論上不應(yīng)該是,不管k有沒有定義,window.k不是一直等于k的嘛?
2017-10-22
window.k是對象屬性,k是變量。對象屬性即使未定義也會返回undefined,但變量未定義就會報錯。