問題
我做了一個示例JavaScript文件來說明我的困惑。混淆JSHint選項如何工作
(function() { console.log(true == true); })()
這應該絆倒兩個錯誤;首先使用==
而不是===
,其次是缺少分號。但是,當我運行時
var jshint = require('jshint').JSHINT;
jshint('(function() { console.log(true == true); })()');
on Node REPL當我不期望時出現錯誤。我希望沒有錯誤的原因是因爲在JSHint文件,它說:
第二個參數[以jshint]是其控制 JSHINT的操作選項的可選對象。大多數選項都是布爾值:它們都是可選的 ,並且其默認值爲false。
我所期望的,因爲我已經沒有定義選項,以便所有的應該是假的這一不產生錯誤。意想不到的行爲的最後一部分是設置選項似乎什麼都不做。下面的兩個呼叫jshint也產生了同樣的錯誤:
var myFile = '(function() { console.log(true == true); })()';
jshint(myFile, {eqeqeq: false, asi: false});
jshint('/*jshint eqeqeq:false, asi:false */\n' + myFile);
問題
我不知道該JSHint選項是如何工作的,我很好,可以曲解的文檔。我會很感激知道什麼在我的調用jshint
上面或在我的假設是不正確的,或者實際上是JSHint有問題。
謝謝你的非常透徹的答案。 – Aaron