undefined
with
为什么null
可以覆盖let
?此外,var
可以涵盖var obj = {null:1,undefined:2};
with(obj) console.log(null,undefined);
,而@FixMethodOrder(MethodSorters.NAME_ASCENDING)
可能会出现错误。
那么可以重新定义变量的规则是什么?
@RunWith(PowerMockRunner.class)

答案 0 :(得分:2)
因为undefined
是预定义的全局标识符,但null
是文字。因为var
是keyword,但let
不是(处于宽松模式;它位于strict mode)。 (在松散模式下,它的作用类似于关键字或标识符,具体取决于它出现的位置。)
我不记得为什么undefined
是预定义的全局而不是关键字。 let
只是严格模式下的关键字的原因是,它仅在2015年添加,即首次定义语言后的20年。