gpt4 book ai didi

javascript - 为什么 undefined 可以被 with 覆盖而 null 不能?

转载 作者:行者123 更新时间:2023-11-29 11:00:54 24 4
gpt4 key购买 nike

为什么 undefined 可以被 with 覆盖而 null 不能?而且,let 可以被覆盖,而 var 不能(它会抛出错误)。

那么一个变量可以重定义的规则是什么?

enter image description here

var obj = {null:1,undefined:2};
with(obj) console.log(null,undefined);

最佳答案

因为undefined是预定义的全局标识符,但是null是文字。因为 var 是一个 keyword ,但 let 不是(在松散模式下;它在 strict mode 中)。 (在松散模式下,它的作用类似于关键字或标识符,具体取决于它出现的位置。)

我不记得为什么 undefined 是预定义的全局变量而不是关键字。 let 只是严格模式下的关键字的原因是它是在 2015 年才添加的,即语言首次定义后 20 年。

关于javascript - 为什么 undefined 可以被 with 覆盖而 null 不能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47323489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com