gpt4 book ai didi

javascript - `jshint globalstrict: true` 与 'use strict' 的用途

转载 作者:数据小太阳 更新时间:2023-10-29 05:22:50 26 4
gpt4 key购买 nike

在阅读 JavaScript 源代码时,我经常会在顶部看到这两行代码。

/* jshint globalstrict: true */
'use strict';

现在,我很清楚'use strict'; 的用途了。有人能告诉我为什么要包含 jshint globalstrict 吗?

最佳答案

JSHint (从 JSLint 派生)是一个流行的“lint checker”,它运行在 JavaScript 代码上。它不执行或修改代码,而是对其进行分析并报告它发现的各种不同的潜在错误或不良做法。

如果您在 JavaScript 文件的顶部(在任何 JavaScript 函数之外)有 'use strict';,它将为整个文件启用严格模式。默认情况下,JSHint 会在看到此消息时报告警告。

'use strict';

window.permissions = null;

function initialize() {
window.permissions = 0;
}
Warnings
1: Use the function form of "use strict".

这是因为许多人在将 JavaScript 文件发送给用户之前会自动将它们连接在一起,在这种情况下,顶级 'use strict;' 可能会导致错误。例如,如果您在 main.js 的顶部有 'use strict';,并且它与非严格模式 controls.js,严格模式也会无意中应用于 controls.js 中的代码,可能会改变其行为。

// This code is fine on its own, but will break if strict mode is applied.
document.querySelector('.upgade').onclick = function() {
window.permissions = 0777;
}

如果这可能发生在您的情况下,您应该避免在文件的顶层使用 'use strict';。你可以整个文件 in a self-executing function以避免连接的副作用。

(function() {
'use strict';

window.permissions = null;

function initialize() {
window.permissions = 0;
}
}());

但是,如果您确定不需要担心连接问题并且不想修改代码,则 globalstrict JSHint 的选项将禁用此警告。这是also possible使用 .jshintrc 文件或 --config 命令行标志指定 JSHint 选项,但在许多情况下,您看到的这个“内联配置”——使用注释文件——最简单。

/* jshint globalstrict: true */

关于javascript - `jshint globalstrict: true` 与 'use strict' 的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27114933/

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