2014-12-02 68 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

相關問題