未使用的变量设置为什么
What are unused variables set to?
特别是对于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
运算符也可以让你弄清楚。
相关文章:
- JavaScript-为什么我可以在数组中设置键
- 为什么页面重新加载会使设置超时无效,以及如何避免
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作
- 为什么我可以't直接将console.log()设置为回调函数
- 使用JS将页面中的每个字母设置为随机颜色.为什么在页面的每个打开标记之前总是有一组额外的span标记
- 为什么我需要为扩展函数设置构造函数
- 为什么我们将控制器变量设置为等于“0”;这个“;在角度上
- 为什么设置 element.className = null 会导致 class=“null”
- 为什么设置window.location.htm不会停止脚本执行
- JavaScript - 为什么设置原型原型不起作用
- 为什么“设置超时”不能正常工作
- 为什么设置超时's回调参数可以接受参数
- 为什么设置css left属性会导致它在8之前关闭
- 为什么设置一个元素's zindex返回到0,不将其移动到IE9中的其他对象之后
- 为什么设置document.cookie在Chrome中不起作用
- 为什么设置innerHTML不起作用
- 为什么设置了NODE_DEBUG=fs环境变量但不工作
- 为什么设置“禁用”属性设置为false也会删除“禁用”.属性
- 为什么设置jQuery disabled属性只对第一个单选输入有效?
- IE9:为什么设置“-ms-transform”;工作于css,但不能与jquery.css()