2016-04-25 83 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"(字符串)。

相关问题