嗨,大家好我试图让使用JSLint,我得到'使用严格'的警告,并将其添加到函数后,我仍然得到缺少'严格'声明使用“严格使用”,但仍然得到警告
fs.readFile('file', 'utf8', function (err, data) {
if (err) { "use strict"; throw err; }
var obj = JSON.parse(data);
});
我很好奇我在做什么错?
嗨,大家好我试图让使用JSLint,我得到'使用严格'的警告,并将其添加到函数后,我仍然得到缺少'严格'声明使用“严格使用”,但仍然得到警告
fs.readFile('file', 'utf8', function (err, data) {
if (err) { "use strict"; throw err; }
var obj = JSON.parse(data);
});
我很好奇我在做什么错?
我对此没有100%正面评价,但我只使用过'use strict';
在给定.js文件的顶部,未嵌入代码中。这样做后我还没有得到警告。也许这就是jslint寻找它的地方。
此外,看着它的文档,use strict
应作用域要么整个脚本,(文件的顶部)或给定函数(函数的顶部,左大括号之后)。所以不管jslint的能力如何,这个应该是固定的。
"use strict"
指令的位置是问题所在。
用途:
// Top of script file
"use strict";
/* ... code ... */
或者:
function b() {
"use strict";
/* ... code ... */
}
你使用它的if
分支的块中。
这不仅仅是常见的,它是规则! ''使用strict';'必须是文件的第一条语句,或者函数的第一条语句才能生效。 – hobbs 2014-12-02 15:28:36
@hobbs是正确的 - 否则它会被网页浏览器忽略,而功能执行方式不同。请修复这个答案。 – 2014-12-02 15:29:12
对不起 - 已删除评论;错过了你所说的“功能的第一个陈述”。试图看看@BenjaminGruenbaum不喜欢的alexfreiria的回答有什么问题。 alexfreiria的编辑只是添加'use strict'链接到MDN;我没有看到答案的任何错误。 – ruffin 2014-12-02 16:01:12
在内部函数的第一行(在if语句之前)移动''use strict''',这应该可以解决问题 – BeNdErR 2014-12-02 15:27:02