2016-04-25 39 views
0

在OSX上的Firefox 45 中,當我從不存在的鍵獲取localStorage中的項目時,函數調用返回null。我在控制檯中測試了這個。爲什麼Javascript在變量賦值時將null轉換爲字符串?

如果我不是呼叫的結果分配給一個變量,並在控制檯打印出它的價值,我得到"null",即一個字符串。

爲什麼以前沒有定義變量的變量賦值蒙上了調用結果爲字符串?

使用的代碼(在控制檯):

​​

編輯:兩個版本似乎正確運行在Chrome 50.0.2661.86在OSX(都返回null

EDIT2:我的錯誤。我在測試中使用了另一個變量名稱(具體爲:var name)。現在,如果我讓控制檯返回變量name的價值,它返回window.name,這是一個字符串類型的window屬性,默認爲"null"。所以,這不是導致演員陣營的任務,而是我得到了一個由window定義的String屬性。

+0

關於windows的firefox 45.0.2,無法複製: localStorage.getItem(「non-existing-key」); //返回null var x = localStorage.getItem(「non-existing-key」); x // - >返回null不是「null」 – Giuseppe

+0

使用OSX,編輯。 –

+0

它在其他瀏覽器中返回的是什麼?我想你是通過返回'null' null'和'「空」' – Rayon

回答

0

我犯了一個錯誤。我使用的具體代碼爲以下幾點:

var name = localStorage.getItem("non-existing-key"); 
name 

現在,getItem不會返回null,而不是一個字符串。那麼,什麼情況是,通過讓控制檯打印name價值,它實際是得到window.name(見window.name on MDN),默認爲"null"(字符串)。

相關問題