主頁 > 企業開發 > Eslint, Eslint中文檔案

Eslint, Eslint中文檔案

2022-07-28 12:58:56 企業開發

ESLint 是一個代碼規范和錯誤檢查工具,有以下幾個特性,所有東西都是可以插拔的,你可以呼叫任意的 rule api 或者 formatter api 去打包或者定義 rule or formatter,任意的 rule 都是獨立的,沒有特定的 coding style,你可以自己配置,

Eslint

中文檔案:Eslint 中文檔案
英文檔案:Eslint 英文檔案
github: Eslint GitHub

微信交流群:前端攻城獅(點擊加入)

EsLint 規則介紹

所有都是可拔插的

  • 內置規則和自定義規則共用一套規則 API
  • 內置的格式化方法和自定義的格式化方法共用一套格式化 API
  • 額外的規則和格式化方法能夠在運行時指定
  • 規則和對應的格式化方法并不強制捆綁使用

每條規則:

  • 各自獨立
  • 可以開啟或關閉(沒有什么可以被認為“太重要所以不能關閉”)
  • 可以將結果設定成警告或者錯誤

另外:

  • ESLint 并不推薦任何編碼風格,規則是自由的
  • 所有內置規則都是泛化的

專案:

  • 通過豐富檔案減少溝通成本
  • 盡可能的簡單透明
  • 相信測驗的重要性

EsLint 常用規則

{
    "no-alert": 0, // 禁止使用alert confirm prompt
    "no-array-constructor": 2, // 禁止使用陣列構造器
    "no-bitwise": 0, // 禁止使用按位運算子
    "no-caller": 1, // 禁止使用arguments.caller或arguments.callee
    "no-catch-shadow": 2, // 禁止catch子句引數與外部作用域變數同名
    "no-class-assign": 2, // 禁止給類賦值
    "no-cond-assign": 2, // 禁止在條件運算式中使用賦值陳述句
    "no-console": 2, // 禁止使用console
    "no-const-assign": 2, // 禁止修改const宣告的變數
    "no-constant-condition": 2, // 禁止在條件中使用常量運算式 if(true) if(1)
    "no-continue": 0, // 禁止使用continue
    "no-control-regex": 2, // 禁止在正則運算式中使用控制字符
    "no-debugger": 2, // 禁止使用debugger
    "no-delete-var": 2, // 不能對var宣告的變數使用delete運算子
    "no-div-regex": 1, // 不能使用看起來像除法的正則運算式/=foo/
    "no-dupe-keys": 2, // 在創建物件字面量時不允許鍵重復 {a:1,a:1}
    "no-dupe-args": 2, // 函式引數不能重復
    "no-duplicate-case": 2, // switch中的case標簽不能重復
    "no-else-return": 2, // 如果if陳述句里面有return,后面不能跟else陳述句
    "no-empty": 2, // 塊陳述句中的內容不能為空
    "no-empty-character-class": 2, // 正則運算式中的[]內容不能為空
    "no-empty-label": 2, // 禁止使用空label
    "no-eq-null": 2, // 禁止對null使用==或!=運算子
    "no-eval": 1, // 禁止使用eval
    "no-ex-assign": 2, // 禁止給catch陳述句中的例外引數賦值
    "no-extend-native": 2, // 禁止擴展native物件
    "no-extra-bind": 2, // 禁止不必要的函式系結
    "no-extra-boolean-cast": 2, // 禁止不必要的bool轉換
    "no-extra-parens": 2, // 禁止非必要的括號
    "no-extra-semi": 2, // 禁止多余的冒號
    "no-fallthrough": 1, // 禁止switch穿透
    "no-floating-decimal": 2, // 禁止省略浮點數中的0 .5 3.
    "no-func-assign": 2, // 禁止重復的函式宣告
    "no-implicit-coercion": 1, // 禁止隱式轉換
    "no-implied-eval": 2, // 禁止使用隱式eval
    "no-inline-comments": 0, // 禁止行內備注
    "no-inner-declarations": [2, "functions"], // 禁止在塊陳述句中使用宣告(變數或函式)
    "no-invalid-regexp": 2, // 禁止無效的正則運算式
    "no-invalid-this": 2, // 禁止無效的this,只能用在構造器,類,物件字面量
    "no-irregular-whitespace": 2, // 不能有不規則的空格
    "no-iterator": 2, // 禁止使用__iterator__ 屬性
    "no-label-var": 2, // label名不能與var宣告的變數名相同
    "no-labels": 2, // 禁止標簽宣告
    "no-lone-blocks": 2, // 禁止不必要的嵌套塊
    "no-lonely-if": 2, // 禁止else陳述句內只有if陳述句
    "no-loop-func": 1, // 禁止在回圈中使用函式(如果沒有參考外部變數不形成閉包就可以)
    "no-mixed-requires": [0, false], // 宣告時不能混用宣告型別
    "no-mixed-spaces-and-tabs": [2, false], // 禁止混用tab和空格
    "linebreak-style": [0, "windows"], // 換行風格
    "no-multi-spaces": 1, // 不能用多余的空格
    "no-multi-str": 2, // 字串不能用\換行
    "no-multiple-empty-lines": [1, {"max": 2}], // 空行最多不能超過2行
    "no-native-reassign": 2, // 不能重寫native物件
    "no-negated-in-lhs": 2, // in 運算子的左邊不能有!
    "no-nested-ternary": 0, // 禁止使用嵌套的三目運算
    "no-new": 1, // 禁止在使用new構造一個實體后不賦值
    "no-new-func": 1, // 禁止使用new Function
    "no-new-object": 2, // 禁止使用new Object()
    "no-new-require": 2, // 禁止使用new require
    "no-new-wrappers": 2, // 禁止使用new創建包裝實體,new String new Boolean new Number
    "no-obj-calls": 2, // 不能呼叫內置的全域物件,比如Math() JSON()
    "no-octal": 2, // 禁止使用八進制數字
    "no-octal-escape": 2, // 禁止使用八進制轉義序列
    "no-param-reassign": 2, // 禁止給引數重新賦值
    "no-path-concat": 0, // node中不能使用__dirname或__filename做路徑拼接
    "no-plusplus": 0, // 禁止使用++,--
    "no-process-env": 0, // 禁止使用process.env
    "no-process-exit": 0, // 禁止使用process.exit()
    "no-proto": 2, // 禁止使用__proto__屬性
    "no-redeclare": 2, // 禁止重復宣告變數
    "no-regex-spaces": 2, // 禁止在正則運算式字面量中使用多個空格 /foo bar/
    "no-restricted-modules": 0, // 如果禁用了指定模塊,使用就會報錯
    "no-return-assign": 1, // return 陳述句中不能有賦值運算式
    "no-script-url": 0, // 禁止使用javascript:void(0)
    "no-self-compare": 2, // 不能比較自身
    "no-sequences": 0, // 禁止使用逗號運算子
    "no-shadow": 2, // 外部作用域中的變數不能與它所包含的作用域中的變數或引數同名
    "no-shadow-restricted-names": 2, // 嚴格模式中規定的限制識別符號不能作為宣告時的變數名使用
    "no-spaced-func": 2, // 函式呼叫時 函式名與()之間不能有空格
    "no-sparse-arrays": 2, // 禁止稀疏陣列, [1,,2]
    "no-sync": 0, // nodejs 禁止同步方法
    "no-ternary": 0, // 禁止使用三目運算子
    "no-trailing-spaces": 1, // 一行結束后面不要有空格
    "no-this-before-super": 0, // 在呼叫super()之前不能使用this或super
    "no-throw-literal": 2, // 禁止拋出字面量錯誤 throw "error";
    "no-undef": 1, // 不能有未定義的變數
    "no-undef-init": 2, // 變數初始化時不能直接給它賦值為undefined
    "no-undefined": 2, // 不能使用undefined
    "no-unexpected-multiline": 2, // 避免多行運算式
    "no-underscore-dangle": 1, // 識別符號不能以_開頭或結尾
    "no-unneeded-ternary": 2, // 禁止不必要的嵌套 var isYes = answer === 1 ? true : false;
    "no-unreachable": 2, // 不能有無法執行的代碼
    "no-unused-expressions": 2, // 禁止無用的運算式
    "no-unused-vars": [2, {"vars": "all", "args": "after-used"}], // 不能有宣告后未被使用的變數或引數
    "no-use-before-define": 2, // 未定義前不能使用
    "no-useless-call": 2, // 禁止不必要的call和apply
    "no-void": 2, // 禁用void運算子
    "no-var": 0, // 禁用var,用let和const代替
    "no-warning-comments": [1, { "terms": ["todo", "fixme", "xxx"], "location": "start" }], // 不能有警告備注
    "no-with": 2, // 禁用with
    "array-bracket-spacing": [2, "never"], // 是否允許非空陣列里面有多余的空格
    "arrow-parens": 0, // 箭頭函式用小括號括起來
    "arrow-spacing": 0, // =>的前/后括號
    "accessor-pairs": 0, // 在物件中使用getter/setter
    "block-scoped-var": 0, // 塊陳述句中使用var
    "brace-style": [1, "1tbs"], // 大括號風格
    "callback-return": 1, // 避免多次呼叫回呼什么的
    "camelcase": 2, // 強制駝峰法命名
    "comma-dangle": [2, "never"], // 物件字面量項尾不能有逗號
    "comma-spacing": 0, // 逗號前后的空格
    "comma-style": [2, "last"], // 逗號風格,換行時在行首還是行尾
    "complexity": [0, 11], // 回圈復雜度
    "computed-property-spacing": [0, "never"], // 是否允許計算后的鍵名什么的
    "consistent-return": 0, // return 后面是否允許省略
    "consistent-this": [2, "that"], // this別名
    "constructor-super": 0, // 非派生類不能呼叫super,派生類必須呼叫super
    "curly": [2, "all"], // 必須使用 if(){} 中的{}
    "default-case": 2, // switch陳述句最后必須有default
    "dot-location": 0, // 物件訪問符的位置,換行的時候在行首還是行尾
    "dot-notation": [0, { "allowKeywords": true }], // 避免不必要的方括號
    "eol-last": 0, // 檔案以單一的換行符結束
    "eqeqeq": 2, // 必須使用全等
    "func-names": 0, // 函式運算式必須有名字
    "func-style": [0, "declaration"], // 函式風格,規定只能使用函式宣告/函式運算式
    "generator-star-spacing": 0, // 生成器函式*的前后空格
    "guard-for-in": 0, // for in回圈要用if陳述句過濾
    "handle-callback-err": 0, // nodejs 處理錯誤
    "id-length": 0, // 變數名長度
    "indent": [2, 4], // 縮進風格
    "init-declarations": 0, // 宣告時必須賦初值
    "key-spacing": [0, { "beforeColon": false, "afterColon": true }], // 物件字面量中冒號的前后空格
    "lines-around-comment": 0, // 行前/行后備注
    "max-depth": [0, 4], // 嵌套塊深度
    "max-len": [0, 80, 4], // 字串最大長度
    "max-nested-callbacks": [0, 2], // 回呼嵌套深度
    "max-params": [0, 3], // 函式最多只能有3個引數
    "max-statements": [0, 10], // 函式內最多有幾個宣告
    "new-cap": 2, // 函式名首行大寫必須使用new方式呼叫,首行小寫必須用不帶new方式呼叫
    "new-parens": 2, // new時必須加小括號
    "newline-after-var": 2, // 變數宣告后是否需要空一行
    "object-curly-spacing": [0, "never"], // 大括號內是否允許不必要的空格
    "object-shorthand": 0, // 強制物件字面量縮寫語法
    "one-var": 1, // 連續宣告
    "operator-assignment": [0, "always"], // 賦值運算子 += -=什么的
    "operator-linebreak": [2, "after"], // 換行時運算子在行尾還是行首
    "padded-blocks": 0, // 塊陳述句內行首行尾是否要空行
    "prefer-const": 0, // 首選const
    "prefer-spread": 0, // 首選展開運算
    "prefer-reflect": 0, // 首選Reflect的方法
    "quotes": [1, "single"], // 引號型別 `` "" ''
    "quote-props":[2, "always"], // 物件字面量中的屬性名是否強制雙引號
    "radix": 2, // parseInt必須指定第二個引數
    "id-match": 0, // 命名檢測
    "require-yield": 0, // 生成器函式必須有yield
    "semi": [2, "always"], // 陳述句強制分號結尾
    "semi-spacing": [0, {"before": false, "after": true}], // 分號前后空格
    "sort-vars": 0, // 變數宣告時排序
    "space-after-keywords": [0, "always"], // 關鍵字后面是否要空一格
    "space-before-blocks": [0, "always"], // 不以新行開始的塊{前面要不要有空格
    "space-before-function-paren": [0, "always"], // 函式定義時括號前面要不要有空格
    "space-in-parens": [0, "never"], // 小括號里面要不要有空格
    "space-infix-ops": 0, // 中綴運算子周圍要不要有空格
    "space-return-throw-case": 2, // return throw case后面要不要加空格
    "space-unary-ops": [0, { "words": true, "nonwords": false }], // 一元運算子的前/后要不要加空格
    "spaced-comment": 0, // 注釋風格要不要有空格什么的
    "strict": 2, // 使用嚴格模式
    "use-isnan": 2, // 禁止比較時使用NaN,只能用isNaN()
    "valid-jsdoc": 0, // jsdoc規則
    "valid-typeof": 2, // 必須使用合法的typeof的值
    "vars-on-top": 2, // var必須放在作用域頂部
    "wrap-iife": [2, "inside"], // 立即執行函式運算式的小括號風格
    "wrap-regex": 0, // 正則運算式字面量用小括號包起來
    "yoda": [2, "never"]// 禁止尤達條件
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/500465.html

標籤:其他

上一篇:vue專案導航選單實作

下一篇:js中函式的概念及方法

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 使用Django Rest framework搭建Blog

    在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處于上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ......

    uj5u.com 2023-04-20 08:17:54 more
  • 記錄-new Date() 我忍你很久了!

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下面,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ......

    uj5u.com 2023-04-20 08:17:47 more
  • 使用Vue.js實作文字跑馬燈效果

    實作文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實作代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ......

    uj5u.com 2023-04-20 08:12:31 more
  • JavaScript 運算子

    JavaScript 運算子/運算子 在 JavaScript 中,有一些運算子可以使代碼更簡潔、易讀和高效。以下是一些常見的運算子: 1、可選鏈運算子(optional chaining operator) ?.是可選鏈運算子(optional chaining operator)。?. 可選鏈操 ......

    uj5u.com 2023-04-20 08:02:25 more
  • CSS—相對單位rem

    一、概述 rem是一個相對長度單位,它的單位長度取決于根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般默認為16px,即默認情況下: 1rem = 16px rem布局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實作rem單位隨螢屏尺寸的變化,如 ......

    uj5u.com 2023-04-20 08:02:21 more
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 08:01:50 more
  • 如何在 vue3 中使用 jsx/tsx?

    我們都知道,通常情況下我們使用 vue 大多都是用的 SFC(Signle File Component)單檔案組件模式,即一個組件就是一個檔案,但其實 Vue 也是支持使用 JSX 來撰寫組件的。這里不討論 SFC 和 JSX 的好壞,這個仁者見仁智者見智。本篇文章旨在帶領大家快速了解和使用 Vu ......

    uj5u.com 2023-04-20 08:01:37 more
  • 【Vue2.x原始碼系列06】計算屬性computed原理

    本章目標:計算屬性是如何實作的?計算屬性快取原理以及洋蔥模型的應用?在初始化Vue實體時,我們會給每個計算屬性都創建一個對應watcher,我們稱之為計算屬性watcher ......

    uj5u.com 2023-04-20 08:01:31 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:01:10 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:00:32 more