在对 PluralSight 进行关于 JavaScript 的测验时,我遇到了这个问题:
假设您启用了严格性,您可以在定义后更改变量的类型吗?
- 可以,没有限制
- 是的,但你必须重新定义变量
- 不
正确答案是否定的。也许我对这个问题的理解是错误的,但对我来说,这表明以下代码无效:
function test() {
"use strict";
let x = 12; // x is a number
x = "hello world"; // x is now a string
return x;
}
console.log(test());
在 Chrome、Firefox 和 Edge 中进行的快速测试可以完美运行上述代码。我还查看了ECMAScript 2016 规范中的附件 C (假设这是正确的文档),并且没有发现在严格模式下限制变量类型的内容。
我是否在这里遗漏或误解了某些内容,或者问题是否存在缺陷或可能具有误导性?