在阅读你不知道的javascript上卷3.3章时看到图中划红线出不懂 . 为什么说这是给其他代码挖了坑呀 .
undefined=true
console.log(undefined) //undefined
console.log(typeof undefined); //undefined
undefined的值并没有被覆盖呀 ?
在阅读你不知道的javascript上卷3.3章时看到图中划红线出不懂 . 为什么说这是给其他代码挖了坑呀 .
undefined=true
console.log(undefined) //undefined
console.log(typeof undefined); //undefined
undefined的值并没有被覆盖呀 ?
有一些内容是历史遗留产物,在历次更新中会被逐步修复。书上写的不可尽信,所谓尽信书不如无书。
结合自己的实践是很好的习惯,值得鼓励。不要纠结于每一个说法,你看的书越多,会发现越多的问题。
从 ES5 (2009) 开始,标准就规定全局 undefined 属性不可写了。所以支持此标准(或更新得标准)的环境,undefined=true;
是不覆盖原值的。
ES4 之前的标准扫了一眼,属性定义跟 ES5 差异比较大,简单浏览一下没有找到明确阻止重写全局 undefined 的规定。
可能在某些环境下(比如某些比较古老的环境,我也不知道哪些 ...),undefined 还是可写的。
2nd ed 里已经没有相关的叙述了。
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
现在块级作用域里还是能覆盖的