Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “jshint globalstrict:true”与';使用严格的';_Javascript_Jshint - Fatal编程技术网

Javascript “jshint globalstrict:true”与';使用严格的';

Javascript “jshint globalstrict:true”与';使用严格的';,javascript,jshint,Javascript,Jshint,在阅读JavaScript源代码时,我经常在顶部看到这两行代码 /* jshint globalstrict: true */ 'use strict'; 现在,我非常清楚“使用严格”的目的。 有人能告诉我为什么包含了jshint globalstrict?(fork from)是一种在JavaScript代码上运行的流行的“”。它不会执行或修改代码,但会分析代码并报告发现的各种不同的潜在错误或不良做法 如果你有“严格使用”在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报告有关“使用严格”的警告。