为什么 Javascript 在变量赋值时将 null 转换为字符串
Why does Javascript cast null to string at variable assignment?
在 OSX 上的 Firefox 45 中,当我从不存在的键中从localStorage
获取项目时,函数调用返回null
.我在控制台中对此进行了测试。
如果我将调用结果分配给一个变量,并在控制台中打印其值,我会得到"null"
,即一个字符串。
为什么以前未定义的变量的变量赋值会将调用结果转换为字符串?
使用的代码(在控制台中):
localStorage.getItem("non-existing-key"); // returns null
var x = localStorage.getItem("non-existing-key");
x // returns "null"
编辑:两个版本似乎在OSX上的Chrome 50.0.2661.86上都表现正确(都返回null
)
编辑2:我的错误。我在测试中使用了另一个变量名称(特别是:var name
)。现在,如果我让控制台返回变量 name
的值,它会返回 window.name
,这是 String 类型的 window
的属性,默认为 "null"
。所以,这不是导致强制转换的赋值,而是我得到了一个由 window
定义的 String 属性。
我犯了一个错误。我使用的具体代码如下:
var name = localStorage.getItem("non-existing-key");
name
现在,getItem
确实返回null
而不是字符串。然后发生的情况是,通过让控制台打印它实际上name
的值,它实际上会得到window.name
(参见MDN上的 window.name),默认情况下是"null"
(字符串)。
相关文章:
- 为什么 Javascript 在变量赋值时将 null 转换为字符串
- 无法在jasmine it函数中将未定义或null转换为对象
- 为什么运算符equal没有将从valueOf()获得的null转换为零
- DWR 报告转换器错误,将 null 从 Javascript 传递到 Java 类
- 在 javascript 中将 “null” 转换为 null
- 将Python None转换为JavaScript null
- 无法将未定义或null转换为对象
- 无法使用Twipsy将null转换为对象
- 为什么 null 未在条件语句中转换为布尔值
- 如何解决TypeError:不能在函数中将未定义或null转换为对象.键(& lt; anonymous>)
- 将json数组转换为查询字符串返回null
- Jquery .position将null转换为0
- 当使用hasOwnProperty时,不能将null或undefined转换为对象
- Javascript:避免使用null或未定义变量进行字符串到整数或浮点类型转换的异常
- 将对象中存在的对象转换为NULL值
- 可以在检查undefined/null时使用类型强制转换
- JavaScript将NULL转换为0
- $.ajaxPrefilter引发未捕获类型错误:无法将null转换为对象异常
- VS代码错误”;无法将未定义或null转换为对象“”;所有JavaScript文件
- 未捕获的类型错误:无法将未定义或 null 转换为对象