未使用的变量设置为什么

What are unused variables set to?

本文关键字:为什么 设置 变量 未使用      更新时间:2023-09-26

特别是对于localStorage.foo

对于 Safari,它设置为:

undefined

对于 Firefox,它设置为:

null

有谁知道Chrome和IE的值?

为什么不同? 只是浏览器程序员的随机选择?

它总是undefined . 也许您的观察方法使您相信不同浏览器中的值是不同的。

哦,我将把这个声明限定为旧版本的IE,这可能会对我所知做一些其他的事情。我敢打赌他们也使用undefined

啊——主角先生有一个有趣的观点。在任何普通对象上,将null不存在的属性。 但是,Firefox确实似乎确实将null报告为不存在的属性的价值,特别是localStorage 。 嗯。。。我的投票是这是一个错误,但我会检查 w3c 规范(或原型规范或其他任何东西)。

undefined的"价值"并不是真正的价值;它更像是佛教的——有点像在说,"你要求的东西没有意义"。 JavaScript 中null的值处理方式与 undefined 不同。 因此:

var a = {};
var b = a.banana;

变量"b"将被undefined 。这很奇怪,但它可以让您区分存在但null的属性和丢失的属性之间的区别。(当然,in运算符也可以让你弄清楚。