2017-05-25 88 views
0

有麻煩咕嚕咕嚕jshint配置不工作

這裏設立jshint選項是我gruntfile.js

grunt.initConfig({ 
    jshint : { 
     options: { 

      curly: false, 
      asi: true, 
      eqeqeq: false, 
      maxparams: 5, 
      undef: false, 
      unused: false, 
      eqnull: true, 
      browser: true, 
      devel: true, 
      expr: true, 
      jquery: true , 
      evil : true 
     }, 
     files : { 
      src : [ 
       'dev/*.js', 'dev/**/*.js' , 
       'files-lib/*.js', 'files-lib/**/*.js' ] 
     }, 
    }, 

仍然得到錯誤

71 | return(this.optional(element)& & value ==「」)|| re.test(value); ^使用'==='與''進行比較。

感謝您的幫助

+0

這不是您使用完整的文件。試着發佈一個簡單的例子。 –

回答

2

簡短的回答:沒有別的你可以在你options配置做,以避免這一點。

不再回答:雖然你有eqeqeq屬性設置爲falseoptions配置,在這種情況下(假定雙等號的情況下==應該不會引發錯誤)jshint我相信這是正確的報告這是一個錯誤。

正在驗證代碼的value==""的部分是什麼引發錯誤(即它忽視了eqeqeq: false選項)。這是有原因的!

==運算符在進行任何必要的類型轉換之後會比較相等性,這可能會導致Javascript中出現非常奇怪的結果。例如:

0 == ""  // true 
false == "" // true 

雖然我很欣賞雙等於得到正確的結果對於很多比較情況下,這value==""例子無疑是一個場景,其中三重等號應使用,或者如果你是一個雙等於唯一的人,那麼你可以用value.length == 0

附加信息關於三重平等和雙等於運營商更換value=="",和它的各種怪癖,可以在答案中找到這個post