,當我把console.log
在瀏覽器控制檯其中有未申報的,將返回未捕獲的ReferenceError任何變量:變量沒有定義。但是當我在瀏覽器控制檯把console.log(name)
返回空和未定義。看到下面的圖片。任何想法,爲什麼發生這種情況..奇怪的問題
我在Chrome和Firefox開發者工具進行了測試。
注:我使用clear()來清除控制檯
,當我把console.log
在瀏覽器控制檯其中有未申報的,將返回未捕獲的ReferenceError任何變量:變量沒有定義。但是當我在瀏覽器控制檯把console.log(name)
返回空和未定義。看到下面的圖片。任何想法,爲什麼發生這種情況..奇怪的問題
我在Chrome和Firefox開發者工具進行了測試。
注:我使用clear()來清除控制檯
name
是一個全局變量這是在window
對象。所以當你登錄時,它會發現全局的,這個值是空字符串(""
)。
console.log(name);
console.log(window.name);
什麼是一個全局對象,在這種情況下,你在你的控制檯打印window.name。
嘗試檢查這種方式,在控制檯中鍵入下面的代碼:
window.name = 'stackoverflow';
然後再次嘗試做的console.log(名稱),你會看到這個時候你看到「計算器」。所以基本上你在你的控制檯打印的名字,是窗口名稱...
有關window.name更多信息,請訪問以下鏈接:
https://developer.mozilla.org/en-US/docs/Web/API/Window/name
這是發生了什麼事時,您鍵入聲明console.log(name)
:
name
。window
對象是否具有名爲的屬性,因爲在瀏覽器中,全局範圍由window
對象表示。window.name
或者只是name
應該返回姓名未定義。window
對象具有一組預定義/本機屬性,名稱就是其中之一。window.name
缺省值爲「」(空字符串),因此它將一個空字符串記錄到控制檯。現在,這是發生了什麼事,當你鍵入console.log(name100)
:
和以前一樣(name100而不是名稱)。
和以前一樣(name100代替名字)。
您還沒有聲明name100,它既不是窗口對象的本地屬性,所以它只是返回name100 is not defined
。
如果是隨窗口對象,你可以檢查此鏈接,你想檢查屬性:
'name'is不是未定義它的'「」(空字符串)。 'undefined'是'console.log'本身的rturned值(注意空行和'''undefined'前面)! –