同问
开发者问题收集
为什么在 ES6 的严格模式下 `"foo".bar = 42;` 会抛出 `TypeError`?
根据 ES5.1 规范,程序"use strict;" "foo".bar = 42;会导致创建一个String对象,将其分配给该对象的属性,然后抛出该对象,从而不会产生任何可观察到的效果 - 包括任何异常。(可以通过在与 ES5 兼容的 JS 实现(如 Opera 12 中的实现)中尝试该程序来确认没有效果。)在现代 JS 实现中,它会抛出TypeError- 尝试一下:"use strict"
javascript
ecmascript-6
typeerror
ecmascript-5
primitive
2018-04-05
«
1
»