gpt4 book ai didi

javascript - 比严格模式更严格?

转载 作者:行者123 更新时间:2023-12-05 00:36:17 24 4
gpt4 key购买 nike

我最近产生了一个愚蠢的错误:

"use strict";

function doSomething() {
let testObject = {a: "foo", b: "bar", parent: "bla"};

if (parent in testObject) {
console.log("has a parent")
}
else {
console.log("does not have a parent")
}
}

doSomething();
由于文字 parent 周围缺少引号,解释器访问 window.parent并且没有 ReferenceError,因为如果我写了 a in testObject .
显然,JavaScript 无法知道我的意图不是访问 window.parent。因此不可能抛出错误。但我想知道在这种情况下是否存在某种 Debug模式会向控制台输出警告,类似于:“ parent 未在此范围内定义,而是访问全局变量”。

最佳答案

不,JavaScript 没有“更严格”的模式来警告您这一点。一些 linter 可能(尽管 ESLint 似乎没有,至少在演示页面的默认设置下)。
TypeScript不过( example ),因为 window.parent不是字符串或符号,因此作为 in 的左侧操作数没有意义.当然,采用 TypeScript 是有代价的,但它确实有这样的好处。

关于javascript - 比严格模式更严格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70913916/

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