R. *_*ung 9 javascript configuration global-variables eslint eslintrc
\n
\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0添加到配置文件属性中的SharedArrayBuffer、 和的目的是什么?Atomics.eslintrc.json"globals"
/** @file "./.eslintrc.json" */\n\n "globals": {\n "Atomics": "readonly",\n "SharedArrayBuffer": "readonly"\n }\n\nRun Code Online (Sandbox Code Playgroud)\nJΛY*_*ÐΞV 13
\n
\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 我认为合适的起点是告诉读者JavaScript 实现了内置全局变量。这意味着:在 JavaScript 运行之前,JS 引擎会初始化 ECMAScript 标准定义的预定义变量,这些变量由编写 JavaScript 引擎(V8、Spider-Monkey 等)的人员实现。内置全局变量非常易于访问,事实上它们可以在 JavaScript 中随处访问。
\n这些变量甚至不需要声明或启动。更简单地说,从 JavaScript 程序的角度来看,它们始终存在,并且始终可访问,正是这些特征使内置全局变量成为开发工具(尤其是“ ESLint”)的问题。
\n“ESLint”知道变量何时被定义,因为它会解析您的代码\xe2\x80\x94,一旦到达变量的声明,它就会记录该声明。ESLint 使用它收集的有关变量声明的数据来了解有关变量的一些不同“事物”,但我们关心的是,它使用这些数据来了解正在使用的变量是否先前已声明,如果未声明, ESLint 显示一个Error. 因为,如前所述,全局变量从未声明过,即使代码有效,ESLint 也会显示错误,并且如果您按照 ESLint 建议执行操作并声明了全局变量,那将不仅仅是一个错误,而且是愚蠢的(请原谅我的法语,但我想大多数人都会同意),因此为了避免所有这些混乱,ESLint 提供了以特殊的方式声明任何全局变量(无论是否预建)的能力"globals":{}
该变量的。通过按照我刚才描述的方式工作,ESLint 能够在程序未使用已声明的变量时通知您
\n通过解析你的脚本,并准备好你定义任意变量的部分,并且由于你没有定义内置全局变量,ESLint 无法知道它们已经被实例化,当然,除非你将它们声明为您eslintrc.json(或者如果您是反叛者,.eslintrc.yaml)属性中的全局变量"globals":{},可以在.eslintrc.json(或者对于反叛者,.eslintrc.yaml文件)中找到。
因此,最终,您可以看到 Atomics 和 SharedArrayBuffer 是内置全局变量,ESLint 无法识别。既然您在询问它们,我假设您没有使用它们,如果我的假设是正确的,那么您应该删除它们。不要声明任何您从未使用过的全局变量。我不知道 Atomics 和 SharedArrayBuffer 最初是如何开始默认作为全局变量包含在 ESLint 配置文件中的,但据我所知,这种做法是不合理的,我只在“常规”中看到它互联网上显示的教程。如果有的话,应该是包含 Mocha 全局变量,因为 JavaScript 开发人员使用 Mocha 进行测试比使用 Atomics 和 SharedArrayBuffer 更为常见,但 Mocha 不是内置的,因此这实际上可能很愚蠢。IMO,如果您不使用全局变量,请不要在任何地方声明它,即使在配置文件中也是如此。
\n\n\n如果您想知道所有这些
\nbuilt-in globals是什么,您可以点击上面的 \xe2\x80\x94 链接,它包含在本答案的开头。
| 归档时间: |
|
| 查看次数: |
1655 次 |
| 最近记录: |