2014-12-02 95 views
0

嗨,大家好我试图让使用JSLint,我得到'使用严格'的警告,并将其添加到函数后,我仍然得到缺少'严格'声明使用“严格使用”,但仍然得到警告

fs.readFile('file', 'utf8', function (err, data) { 
    if (err) { "use strict"; throw err; } 
    var obj = JSON.parse(data); 
    }); 

我很好奇我在做什么错?

+0

在内部函数的第一行(在if语句之前)移动''use strict''',这应该可以解决问题 – BeNdErR 2014-12-02 15:27:02

回答

1

我对此没有100%正面评价,但我只使用过'use strict';在给定.js文件的顶部,未嵌入代码中。这样做后我还没有得到警告。也许这就是jslint寻找它的地方。

此外,看着它的文档,use strict应作用域要么整个脚本,(文件的顶部)或给定函数(函数的顶部,左大括号之后)。所以不管jslint的能力如何,这个应该是固定的。

1

"use strict"指令的位置是问题所在。

用途:

// Top of script file 
"use strict"; 
/* ... code ... */ 

或者:

function b() { 
    "use strict"; 
    /* ... code ... */ 
} 

你使用它的if分支的块中。

+2

这不仅仅是常见的,它是规则! ''使用strict';'必须是文件的第一条语句,或者函数的第一条语句才能生效。 – hobbs 2014-12-02 15:28:36

+0

@hobbs是正确的 - 否则它会被网页浏览器忽略,而功能执行方式不同。请修复这个答案。 – 2014-12-02 15:29:12

+0

对不起 - 已删除评论;错过了你所说的“功能的第一个陈述”。试图看看@BenjaminGruenbaum不喜欢的alexfreiria的回答有什么问题。 alexfreiria的编辑只是添加'use strict'链接到MDN;我没有看到答案的任何错误。 – ruffin 2014-12-02 16:01:12

相关问题