Javascript “jshint globalstrict:true”与';使用严格的';
在阅读JavaScript源代码时,我经常在顶部看到这两行代码Javascript “jshint globalstrict:true”与';使用严格的';,javascript,jshint,Javascript,Jshint,在阅读JavaScript源代码时,我经常在顶部看到这两行代码 /* jshint globalstrict: true */ 'use strict'; 现在,我非常清楚“使用严格”的目的。 有人能告诉我为什么包含了jshint globalstrict?(fork from)是一种在JavaScript代码上运行的流行的“”。它不会执行或修改代码,但会分析代码并报告发现的各种不同的潜在错误或不良做法 如果你有“严格使用”在JavaScript文件的顶部,在任何JavaScript函数之外,
/* jshint globalstrict: true */
'use strict';
现在,我非常清楚“使用严格”的目的代码>。
有人能告诉我为什么包含了jshint globalstrict
?(fork from)是一种在JavaScript代码上运行的流行的“”。它不会执行或修改代码,但会分析代码并报告发现的各种不同的潜在错误或不良做法
如果你有“严格使用”
在JavaScript文件的顶部,在任何JavaScript函数之外,它将为整个文件启用严格模式。默认情况下,如果JSHint看到这一点,它将报告一个警告
'use strict';
window.permissions = null;
function initialize() {
window.permissions = 0;
}
警告
1:使用“严格使用”的函数形式。
这是因为许多人在将JavaScript文件发送给用户之前会自动将它们连接在一起,在这种情况下,顶级的“use strict;”代码>可能导致错误。例如,如果您有“使用strict”
在main.js
的顶部,它与非严格模式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;
}
如果在您的情况下可能发生这种情况,您应该避免使用strict代码>位于文件的顶层。您可以修改整个文件以避免连接的副作用
(function() {
'use strict';
window.permissions = null;
function initialize() {
window.permissions = 0;
}
}());
但是,如果您确定不需要担心级联问题,也不想修改代码,那么JSHint的选项将禁用此警告。使用.jshintrc
文件或--config
命令行标志来指定JSHint选项是非常困难的,但是在许多情况下,您看到的使用文件中注释的这种“内联配置”是最简单的
/* jshint globalstrict: true */
所以globalstrict:true是否会禁止“使用严格”本应报告的警告?几乎如此。它将禁止JSHint报告有关“使用严格”的警告。