JSLint=》JSHint=》ESLint

JSLint=》JSHint=》ESLint 是由不同開發(fā)者維護(hù),逐步發(fā)展的lint工具,其目的是使代碼風(fēng)格更加一致并避免錯(cuò)誤。

ESLint

完全支持ES6+、支持JSX、兼容了JSLint和JSHint的規(guī)則、支持更多更靈活的自定義規(guī)則配置、可以根據(jù)錯(cuò)誤定位到對(duì)應(yīng)的規(guī)則。

可以在VSCode中使用ESLint插件實(shí)時(shí)檢查,也可以通過npm安裝eslint并手動(dòng)運(yùn)行相關(guān)指令進(jìn)行檢查。


jshint 配置文件.jshintrc
{
    //
    // 強(qiáng)制選項(xiàng)
    //
    // When set to true, these options will make JSHint produce more warnings about your code.

    /**
     * 是否阻止位運(yùn)算符的使用
     *
     * 有時(shí)候?yàn)榱丝焖偃≌蚺袛啵瑫?huì)使用一些位運(yùn)算符,所以此項(xiàng)設(shè)置為 false
     */
    "bitwise": false,
    /**
     * 是否要求變量都使用駝峰命名
     *
     * 默認(rèn)開啟
     * 棄用,見jscs項(xiàng)目
     */
    "camelcase": true,
    /**
     * 是否要求 for/while/if 等循環(huán)和條件語(yǔ)句中總是使用花括號(hào)
     *
     *
     */
    "curly": true,
    /**
     * 是否強(qiáng)制使用嚴(yán)格等號(hào)
     *
     * 有時(shí)候需要判斷 null,所以默認(rèn)不嚴(yán)格要求
     */
    "eqeqeq": true,
    /**
     * true: 默認(rèn)要求所有函數(shù)運(yùn)行在ES5
     * 棄用
     */
    //"es3": true,
    //"es5": true,
    //"esnext": true,
    /**
     * 選擇ES版本,3,5,6
     *
     */
    "esversion": 5,
    /**
     * for-in 語(yǔ)句是否要求過濾原型鏈上的對(duì)象
     * 添加 obj.hasOwnProperty(prop)
     * 默認(rèn)打開
     */
    "forin": true,
    /**
     * 是否阻止修改或拓展基本對(duì)象(Array、Date 等)的原型鏈
     *
     * 原型鏈污染比較危險(xiǎn),默認(rèn)打開
     */
    "freeze": true,
    /**
     * 變量只能在函數(shù)域上定義,在代碼塊上定義的變量給出警告
     */
    "funcscope": true,
    /**
     * 當(dāng)使用JS保留字時(shí),顯示警告
     */
    "futurehostile": true,
    /**
     * 是否要求自執(zhí)行的方法使用括號(hào)括起  (function () { } ());
     * 默認(rèn)打開
     * 棄用,見jscs項(xiàng)目
     */
    "immed": true,
    /**
     * 指定tab縮進(jìn)寬度為 2 個(gè)空格
     *
     * 棄用,見jscs項(xiàng)目
     */
    "indent": 4,
    /**
     * 要求變量在使用前聲明,
     */
    "latedef": true,
    /**
     * 代碼塊嵌套深度
     */
    "maxdepth": 4,
    /**
     * 最大錯(cuò)誤提示數(shù)量,默認(rèn)50
     */
    "maxerr": 10000,
    /**
     * 單行最大長(zhǎng)度
     *
     * 棄用,見jscs項(xiàng)目
     */
    "maxlen": 200,
    /**
     * 設(shè)置函數(shù)正式參數(shù)的最大數(shù)量
     *
     */
    "maxparams": 20,
    /**
     * 一個(gè)函數(shù)內(nèi)聲明語(yǔ)句的最大數(shù)量
     *
     */
    "maxstatements": 1000,
    /**
     * 要求構(gòu)造函數(shù)大寫
     *
     * 棄用,見jscs項(xiàng)目
     */
    "newcap": true,
    /**
     * 不允許使用 arguments.callee 和 arguments.caller
     */
    "noarg": true,
    /**
     * 不允許使用逗號(hào)
     */
    "nocomma": true,
    /**
     * 不允許空的代碼快,默認(rèn)關(guān)閉
     *
     * 棄用,見jscs項(xiàng)目
     */
    "noempty": false,
    /**
     * 不允許使用 "non-breaking whitespace"。
     *
     * 這些字符在非 UTF8 頁(yè)面會(huì)導(dǎo)致代碼失效
     */
    "nonbsp": true,
    /**
     * 阻止直接使用 new 調(diào)用構(gòu)造函數(shù)的語(yǔ)句(不賦值對(duì)象)
     *
     * // OK
     * var a = new Animal();
     *
     * // Warn
     * new Animal();
     */
    "nonew": true,
    /**
     * 阻止直接使用 typeof 操作符
     *
     * 慎用
     */
    "notypeof": false,
    /**
    * 字符串引號(hào)
    *
    * 默認(rèn)要求使用單引號(hào)
    true-- 代碼字符串禁止單引號(hào)雙引號(hào)混用,
    "single"--只允許單引號(hào)
    "double"--只允許雙引號(hào)。
    * 棄用,見jscs項(xiàng)目
    */
    "quotmark": "single",
    /**
    * 隱藏式聲明
    *
    "inner" - check for variables defined in the same scope only
    "outer" - check for variables defined in outer scopes as well
    false - same as inner
    true - allow variable shadowing
    */
    "shadow": "inner",
    /**
     *  禁止在不必要的時(shí)候使用分組運(yùn)算符
     */
    "singleGroups": true,
    /**
     * 是要求否以 strict 模式檢查
     *
     * 該選項(xiàng)要求文件有 "use strict;"不全局要求,需要的模塊自行開啟
     */
    "strict": false,
    /**
     * 提示未定義的變量
     *
     * 未定義的變量會(huì)容易造成全局變量,該項(xiàng)開啟
     */
    "undef": true,
    /**
     * 提示未使用的變量
     * vars - to only check for variables, not function parameters
     * strict - to check all variables and parameters.
     * 默認(rèn)開啟
     */
    "unused": true,
    /**
     * 是否禁止使用var
     * Use `let` or `const` instead.
     */
    "varstmt": false,
    //
    //Relaxing options
    //
    //When set to true, these options will make JSHint produce fewer warnings about your code.

    /**
     * 不顯示缺少分號(hào)警告
     */
    "asi": false,
    /**
     *  不顯示在 比較處使用了賦值 的警告信息。
     */
    "boss": true,
    /**
     * 不顯示代碼中使用的 debugger 語(yǔ)句默認(rèn)給出的警告
     */
    "debug": false,
    /**
     * This option tells JSHint that your code uses ES3 array elision elements, or empty elements (for example, [1, , , 4, , , 7]).
     */
    "elision": true,
    /**
     * 不顯示關(guān)于 == null的警告
     * 當(dāng)您想要檢查變量是否為空或未定義時(shí),這種比較往往很有用。
     */
    "eqnull": true,
    /**
     * 不顯示關(guān)于 eval 的警告
     *
     */
    "evil": true,
    /**
     * 不顯示 在應(yīng)該使用復(fù)制或函數(shù)調(diào)用的地方使用了表達(dá)式 的警告。
     */
    "expr": true,
    /**
     * 不顯示缺少分號(hào)的警告
     */
    "lastsemic": false,
    /**
     * 不顯示不安全的折行的警告
     *
     * 棄用,見jscs項(xiàng)目
     */
    "laxbreak": true,
    /**
     * 不顯示逗號(hào)放前面的警告,例如:
     *
     * 棄用,見jscs項(xiàng)目
     */
    "laxcomma": true,
    /**
     * 不顯示 在循環(huán)語(yǔ)句中定義函數(shù) 的警告
     */
    "loopfunc": true,
    /**
     * 不顯示 多行字符串 的警告
     */
    "multistr": true,
    /**
     * 不允許使用 ++ 和 -- 運(yùn)算符
     *
     * 默認(rèn)關(guān)閉
     */
    "plusplus": false,
    /**
     * 禁止關(guān)于__proto__屬性的警告
     */
    "proto": true,
    /**
     *  true: Prohibit use of empty blocks
     *  該選項(xiàng)控制形如 person['name'] vs. person.name的警告信息的顯示
     *  棄用,見jscs項(xiàng)目
     */
    "sub": true,
    //
    // Environments
    //
    // These options let JSHint know about some pre-defined global variables.
    /**
     * 暴露瀏覽器屬性的全局變量,列如 window,document;
    注意:這個(gè)選項(xiàng)不暴露變量 alert或 console。
     */
    "browser": true,
    /**
     * 這個(gè)選項(xiàng)定義全局暴露的jQuery庫(kù)。
     */
    "jquery": true,
    "devel": true,
    /**
     *這個(gè)選項(xiàng)可以用來指定一個(gè)沒有正式定義的全局變量的白名單。配置 globals在單個(gè)文件,看看內(nèi)聯(lián)配置.
     *需要的引用到的js類庫(kù)的全局變量應(yīng)該加入進(jìn)來
     */
    "globals": {
        "define": true,
        "module": true,
        "export": true,
        "console": true,
        "THREE": true,
        "TWEEN": true,
        "Stats": true,
        "wx": true,
        "angular": true,
        "mui": true,
        "IDValidator": true
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容