特别是localStorage.foo
对于Safari,它设置为:
undefined
对于Firefox,它设置为:
null
有谁知道Chrome和IE的价值?
为什么会有所不同?只是浏览器程序员的随机选择?
答案 0 :(得分:6)
总是undefined
。也许您的观察方法使您相信不同浏览器中的值不同。
哦,我会为IE的旧版本限定该声明,这可能会为我所知道的其他事情做些其他事情。我打赌他们也会使用undefined
。
null
。但是,Firefox确实似乎将null
报告为特别是localStorage
的不存在属性的值。嗯...我的投票将是那个错误,但我会检查w3c规范(或原型或其他任何规格)。
“价值”undefined
实际上不是一个值;它更像是佛教 mu - 它有点像说,“你要求的东西没有意义”。 JavaScript中的值null
与undefined
的处理方式不同。因此:
var a = {};
var b = a.banana;
变量“b”将为undefined
。这很奇怪,但是它可以让你区分出现的属性但是null
和缺少的属性。 (当然,in
运算符也可以解决这个问题。)