未使用的变量设置为什么?

时间:2012-07-06 20:57:25

标签: javascript

特别是localStorage.foo

对于Safari,它设置为:

undefined

对于Firefox,它设置为:

null

有谁知道Chrome和IE的价值?

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

1 个答案:

答案 0 :(得分:6)

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

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

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

“价值”undefined实际上不是一个值;它更像是佛教 mu - 它有点像说,“你要求的东西没有意义”。 JavaScript中的值nullundefined的处理方式不同。因此:

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

变量“b”将为undefined。这很奇怪,但是它可以让你区分出现的属性但是null和缺少的属性。 (当然,in运算符也可以解决这个问题。)