jshint:在简单的javascript文件中'使用'使用严格'的函数形式'和'文档未定义'

JL_*_*_SO 1 javascript jshint

我将它们捆绑在一起,因为我认为它们是相关的。最简单的简单代码位:

'use strict';
const x = document.querySelector('#score strong');
Run Code Online (Sandbox Code Playgroud)

导致以下

"use the function form of use strict (W097)"
"document is not defined (W117)"
Run Code Online (Sandbox Code Playgroud)

这可能是错误或警告;W 提出警告,但我不知道如何确定这一点。

那么,另一个问题:这些是警告还是错误,我该如何告诉自己?这是在哪里引用的?

我正在使用 Atom 1.31,我认为是 JSHint(不管那是什么 - 我对这一切都很陌生)。我正在使用 ES6 - .jshintrc:

{
"esversion": 6
}
Run Code Online (Sandbox Code Playgroud)

我应该如何在全局范围内指定 use strict ?将它放在一个函数中以便它在全局范围内使用意味着,呃,将我的脚本的全部内容放在一个函数中。不?是的?

而我如何规避这个文件中没有定义的东西呢?我试过了

const document=this.document;
const document=global.document;
const document=window.document;
Run Code Online (Sandbox Code Playgroud)

所有结果都会导致警告/错误(无论如何)。

所以,要清楚,我的问题是:

  1. 这些是警告还是错误,我该如何告诉自己?

  2. 我如何并且确实需要绕过使用严格的东西?

  3. 我该如何并且确实需要,规避文档中没有定义的东西?

Ry-*_*Ry- 5

您需要将strict选项设置为首选 global 'use strict',以及告诉 JSHint 您的脚本针对浏览器的browser选项

.jshintrc

{
    "esversion": 6,
    "browser": true,
    "strict": "global"
}
Run Code Online (Sandbox Code Playgroud)

是的,代码开头的“W”表示“警告”。