国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關于jshint的配置

_Suqin / 3571人閱讀

摘要:設置代碼縮進長度禁止屬性有關的警告。設置最大警告數。警告此選項已被棄用將被刪除在的下一個主要版本要求所有構造器使用形式。不換行的空格警告這個選項禁止使用構造器函數。禁止缺少分號警告禁止比較表達式的值沒有達到預期警告。

關于jshint的配置
JSHint默認使用用戶當前目錄下的.jshintrc文件(json格式)作為配置文件

英文文檔

jshint配置

各種配置方式

命令行通過 –config 選項手動指定配置文件;

通過 在package.json中的添加標記手動配置;

"jshintConfig": {
    "undef": true,
    "unused": true,
    "predef": [
      "MY_GLOBAL",
      "ads"
    ]
  }

使用 .jshintrc 文件;

運行時jshint會從當前路徑下開始,一層一層往上找
/**示例配置**/
{
  "sub":true,
  "laxbreak":true,
  "laxcomma":true,
  "regexp":true,
  "asi": true,
  "browser": true,
  "loopfunc":true,
  "expr":true,
  "node": true,
  "es5": true,
  "esnext": true,
  "bitwise": true,
  "curly": true,
  "immed": true,
  "latedef": false,
  "expr": true,
  "eqeqeq": false,
  "eqnull": false,
  "newcap": true,
  "noarg": true,
  "undef": true,
  "proto": true,
  "strict": false,
  "smarttabs": true
}

內聯配置;

除了使用配置文件,您可以在你的文件中使用jshint或者globals開頭,
并跟著配置項以冒號分隔值列表來配置JSHint。

例如,下面的代碼片段將啟用警告未定義的和未使用的變量和告訴JSHint全局變量命名MY_GLOBAL。

/* jshint undef: true, unused: true */
/* globals MY_GLOBAL */

可以使用單行或者多行來配置JSHint,如果放在函數里面,則只影響該函數。
ignore 告訴jshint忽略一個代碼塊

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */

上面的代碼在jshint ignore:start和 ignore:end之間的所有代碼都將被JSHint忽略;

或者忽略一行:

ignoreThis(); // jshint ignore:line

以上都只是示例,具體使用的話還是去看文檔吧,orz -_-|||

JSHint配置文件中的規則有3類:
Enforcing: 這些規則被置為true,JSHint會對代碼進行更嚴格的檢查。
Relaxing: 這些規則被置為true,JSHint會容忍規則中定義的情況出現。
Environment: 這些規則被置為true,JSHint會認為代碼默認有一些全局變量
1.校驗選項:Enforcing
bitwise
禁用位運算符,位運算符在 JavaScript 中使用較少,經常是把 && 錯輸成 &。
bitwise: true
camelcase
警告:此選項已被棄用,將在JSHint的下一個主要版本被刪除.
此選項可以強制所有變量名稱為使用駝峰風格或UPPER_CASE用下劃線。
camelcase:true/false
curly
循環或者條件語句必須使用花括號包圍.
這個選項需要你總是把花括號在塊循環和條件。JavaScript塊時可以省略括號包含只有一個語句,例如:
while (day)
shuffle();
然而,在某些情況下,它會導致錯誤(你可能會認為 sleep()是一個循環的一部分,而事實上它不是)
while (day)
shuffle();
sleep();
enforceall
警告:此選項已被棄用,將在JSHint的下一個主要版本被刪除.
它啟用所有強制執行選項和禁用該版本中定義的所有的Relaxing options;
eqeqeq
設置為true,禁止使用這個選項 ==和 !=,強制使用 ===和 !==。
eqeqeq: true
es3
警告:此選項將在JSHint的下一個主要版本被刪除,使用esversion: 3代替.
使用ECMAScript 3規范。使用這個選項主要為了兼容低級瀏覽器 IE 6/7/8/9-and其他遺留JavaScript環境。
es5
警告:此選項將被刪除在JSHint的下一個主要版本,使用 esversion: 5代替。
這個選項允許語法中定義ECMAScript 5.1規范,這包括允許保留關鍵字作為對象屬性。
esversion
這個選項用于指定的ECMAScript版本代碼必須遵循。它可以假設以下值之一:
3--如果你需要可執行程序在老這類瀏覽器Internet Explorer 6/7/8/9-and其他遺留JavaScript環境
5--先使語法中定義ECMAScript 5.1規范。這包括允許保留關鍵字作為對象屬性。
6--告訴JSHint代碼使用ECMAScript 6具體的語法。請注意,并不是所有的瀏覽器都實現它們。
forin
這個選項要求所有 for in循環過濾對象的item。他在聲明中允許for遍歷一個對象所有屬性的名稱包括通過原型鏈繼承來的屬性。
for (key in obj) {
if (obj.hasOwnProperty(key)) {
// We are sure that obj[key] belongs to the object and was not inherited.
}
}
freeze
這個選項禁止重寫原生對象的原型列如 Array, Date等等。
funcscope
禁止從外部訪問內部聲明的變量
function test() {
if (true) {
var x = 0;
}
x += 1; // Default: "x" used out of scope.
// No warning when funcscope:true
}
futurehostile
允許警告js未來版本中定義的標識符。
globals
這個選項可以用來指定一個沒有正式定義的全局變量的白名單。
配置 globals在單個文件,看看內聯配置.
immed
警告:此選項已被棄用,將在JSHint的下一個主要版本被刪除。
需要直接調用的函數必須被括號包圍,如:(function(){}());
indent
警告:此選項將在JSHint的下一個主要版本被刪除。
設置代碼縮進長度
iterator
禁止iterator屬性有關的警告。
此屬性不支持所有瀏覽器所以小心使用它。
latedef
禁止定義之前使用變量。
這個選項設置為“nofunc”將允許函數聲明被忽略。
maxcomplexity
設置代碼文件獨立直線路徑最大復雜度檢測。
maxdepth
設置代碼最大嵌套深度。
// jshint maxdepth:2
function main(meaning) {
var day = true;
if (meaning === 42) {
while (day) {
shuffle();
if (tired) {
// JSHint: Blocks are nested too deeply (3).
sleep();
}
}
}
}
maxerr
設置JSHint最大警告數。默認50
maxlen
警告:此選項將在JSHint的下一個主要版本被刪除
設置最大行數
maxparams
這個選項允許您設置每個函數的形參最大數量
// jshint maxparams:3
function login(request, onSuccess) {
// ...
}
// JSHint: Too many parameters per function (4).
function logout(request, isManual, whereAmI, onSuccess) {
 // ...
}
maxstatements
這個選項允許您設置語句允許的最大聲明數:
// shint maxstatements:4
function main() {
var i = 0;
var j = 0;
// Function declarations count as one statement. Their bodies
// don"t get taken into account for the outer function.
function inner() {
var i2 = 1;
var j2 = 1;
return i2 + j2;
}
j = i + j;
return j; // JSHint: Too many statements per function. (5)
}
函數也算聲明。
newcap
警告此選項已被棄用,將被刪除在JSHint的下一個主要版本
要求所有構造器使用new F()形式。
noarg
禁止使用這個選項 arguments.caller和 arguments.callee。這兩個 .caller
和.callee將會被棄用。事實上,ECMAScript 5 嚴格模式禁止使用arguments.callee
nocomma
這個選項禁止使用逗號操作符。
noempty
警告此選項已被棄用,將被刪除在JSHint的下一個主要版本。
空代碼塊警告。
nonbsp
不換行的空格警告
nonew
這個選項禁止使用new構造器函數。有些人喜歡調用構造函數,但是不賦值給任何對象:
new MyConstructor();
notypeof
檢查無效 typeof操作符的值
// "fuction" instead of "function"
if (typeof a == "fuction") { // Invalid typeof value "fuction"
// ...
}
predef
擴展的隱式全局變量
quotmark
警告此選項已被棄用,將被JSHint的下一個主要版本刪除。
這個選項執行代碼中使用引號的一致性。它接受三個值:

true-- 代碼字符串禁止單引號雙引號混用,

"single"--只允許單引號

"double"--只允許雙引號。
shadow
檢查變量重復定義
他接受4個值:

"inner" 只檢查是否在相同的作用域重復定義

"outer" 檢查外部作用域

false 與inne一樣

true 允許變量覆蓋
singleGroups
禁止使用分組操作符
// jshint singleGroups: true
delete(obj.attr); // Warning: Unnecessary grouping operator.
strict
ECMAScript 5嚴格模式

"global" - 全局層面的嚴格模式"use strict";

"implied" - 文件里面使用"use strict";

false - 禁止使用嚴格模式

true - 函數上面必須使用一個"use strict";
undef
變量未定義
// jshint undef:true
function test() {
var myVar = "Hello, World";
// Oops, typoed here. JSHint with undef will complain
console.log(myvar);
}
如果你的另一個文件中定義的變量,你可以使用 global指令告訴JSHint。
unused
變量定義未使用
// jshint unused:true
function test(a, b) {
var c, d = 2;
return a + d;
}
test(1, 2);
// Line 3: "b" was defined but never used.
// Line 4: "c" was defined but never used
varstmt
設置為true時,禁止使用var聲明變量
// jshint varstmt: true
var a; // Warning: var declarations are forbidden. Use let or const instead.
2.寬松選項:Relaxing
設置為true時,這些選項會使代碼JSHint產生更少的警告。
asi
禁止缺少分號警告
boss
禁止比較表達式的值沒有達到預期警告。
通常情況下,代碼 if (a = 10) {}是一個錯誤,但他有可能這樣用
for (var i = 0, person; person = people[i]; i++) {}
你可以禁止這個錯誤,比如
for (var i = 0, person; (person = people[i]); i++) {}
debug
忽略 debugger
elision
告訴JSHint代碼使用ES3數組省略元素,或空元素(例如, [1, , , 4, , , 7]
).
eqnull
禁止 == null比較。通常這樣的比較有用,當你想檢查一個變量是否null
或 undefined
eqnull
警告此選項將在JSHint的下一個主要版本被 esversion: 6代替
使用ECMAScript 6具體語法,有些瀏覽器不支持
evil
禁止使用eval
expr
禁止使用表達式,一般的使用函數調用。
globalstrict
下個版本中會使用 strict: "global"代替。
全局嚴格模式會和第三方小插件沖突,所以不推薦使用。
lastsemic
檢查一行代碼最后聲明后面的分號是否遺漏
var name = (function() { return "Anton" }());
laxbreak
檢查不安全的折行(下個版本將被刪除)
laxcomma
檢查逗號在代碼行最前面的編程風格
var obj = {
name: "Anton"
, handle: "valueof"
, role: "SW Engineer"
};
loopfunc
禁止內部循環,定義函數的內部循環可能導致這樣的錯誤:
var nums = [];
for (var i = 0; i < 10; i++) {
nums[i] = function (j) {
return i + j;
};
}
nums0; // Prints 12 instead of 2
解決上面的代碼,你需要復制的變量 i:
var nums = [];
for (var i = 0; i < 10; i++) {
(function (i) {
nums[i] = function (j) {
return i + j;
};
}(i));
}
moz
JSHint Mozilla擴展。除非你開發專門為Firefox web瀏覽器不需要這個選項。
multistr
將在下個版本中被刪除
這個選項會抑制警告多行字符串。允許多行字符串在JavaScript是危險的,如果你小心在一個轉義字符()和一個新行之間輸入一個空格,將會導致整個字符串錯誤。
注意,即使這個選項允許正確多行字符串,它仍然警告說對多行字符串沒有轉義字符之間或與任何轉義字符和空格。
// jshint multistr:true
var text = "HelloWorld"; // All good.
text = "HelloWorld"; // Warning, no escape character.
text = "HelloWorld"; // Warning, there is a space after 
noyield
檢查函數生成器沒有yield聲明
plusplus
禁止一元遞增和遞減運算符的使用
proto
禁止關于__proto__屬性的警告
scripturl
禁止使用腳本URL定向,比如javascript:...
sub
下個版本將被刪除
檢查[]使用,可以使用.代替[]
person["name"] vs.person.name.
supernew
檢查怪異結構 new function () { ... }和 new Object;
這樣的結構是有時用于單列在JavaScript中:
var singleton = new function() {
var privateVar;
this.publicMethod = function () {}
this.publicMethod2 = function () {}
};
validthis
注意:可以使用這個選項只有在函數的范圍
在非構造器函數中使用 this
withstmt
檢查with使用聲明。
with聲明語句可以引起開發者和意外全局變量定義之間的混亂。
3.環境選項:Environment
這些選項讓JSHint知道一些預先定義的全局變量。
browser
暴露瀏覽器屬性的全局變量,列如 window,document;
注意:這個選項不暴露變量 alert或 console。
browserify
這個選項定義全局變量使用時可用Browserify工具建立一個項目
couch
這個選項定義全局暴露CouchDB。CouchDB是一個面向文檔的數據庫,可以查詢和索引MapReduce的方式使用JavaScript
devel
這個選項定義了全局變量,通常用于日志調試: console, alert等等
dojo
這個選項定義全局暴露的Dojo Toolkit.
jasmine
這個選項定義全局暴露jasmine的單元測試框架.
jquery
這個選項定義全局暴露的jQuery庫。
mocha
這個選項定義全局暴露的“BDD”和“TDD”的ui mocha單元測試框架.
module
這個選項告訴JSHint,輸入代碼描述了一個ECMAScript 6模塊。所有模塊的代碼解釋為嚴格模式代碼。
mootools
這個選項定義全局暴露的MooToolsJavaScript框架。
node
這個選項定義全局變量可以當你的代碼運行在node的運行時環境
nonstandard
這個選項定義非標準但廣泛采用全局變量等 escape和 unescape.
phantom
這個選項定義全局可用你的核心運行時內部PhantomJS運行時環境
prototypejs
這個選項定義全局暴露的prototypejs框架。
qunit
這個選項定義全局暴露QUnit單元測試框架
rhino
這個選項定義全局變量可以當你的代碼運行在rhino的運行時環境。rhino是一個開源的實現完全用Java編寫的JavaScript。
shelljs
這個選項定義全局暴露ShellJS庫
typed
這個選項定義全局變量數組類型構造函數。
worker
這個選項定義全局變量可以當你的代碼運行在web worker.web worker 是運行在后臺的 JavaScript,獨立于其他腳本,不會影響頁面的性能.
所有主流瀏覽器均支持 web worker,除了 Internet Explorer。
wsh
這個選項定義全局變量可以當你的代碼運行在Windows Script Host的運行時環境
yui
這個選項定義全局暴露的yui框架。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/98826.html

相關文章

  • jshint .jshintrc 配置

    文檔地址 { // // 強制選項 // // When set to true, these options will make JSHint produce more warnings about your code. /** * 是否阻止位運算符的使用 * * 有時候為了快速取整或判斷,會使用一些位運算符,所以此項設置為 false ...

    Michael_Lin 評論0 收藏0
  • JavaScript代碼檢查及與gulp、git結合使用

    摘要:在團隊開發過程中,我們可能會要浪費一些時間在代碼檢查上,譬如拼寫的檢查代碼規范的檢查。安裝及使用是一個用于代碼靜態檢查的一些開源項目。如果沒有指定文件,是不會對文件就行檢查的。 在團隊開發過程中,我們可能會要浪費一些時間在代碼檢查上,譬如拼寫的檢查、代碼規范的檢查。作為碼農,我們當然不能把自己的時間浪費這種無意義的事情上,所以本篇我將介紹一些自動化代碼檢查的東西和項目實際上的應用。 J...

    yck 評論0 收藏0
  • [譯]JavaScript lint工具比較

    摘要:工具幫助避免在編寫時出現愚蠢的錯誤。并不檢測潛在的,比如,未使用的變量或意外的全局變量等。在提到的所有工具中,它具有最廣泛的功能支持。使用工具是捕獲問題的良好步驟,但只能看到規則允許的錯誤。也可用于此目的。 Lint工具幫助避免在編寫JavaScript時出現愚蠢的錯誤。盡管有多年的經驗,我仍然鍵入不正確的變量名稱,出現語法錯誤,以及忘記正確地處理error。在浪費自己時間,或更糟糕地...

    luck 評論0 收藏0
  • “流式”前端構建工具——gulp.js 簡介

    摘要:流式構建改變了底層的流程控制,大大提高了構建工作的效率和性能,給用戶的直觀感覺就是更快。我的看法關于流式構建,短短幾句話無法講清它的來龍去脈,但是在的世界里,確實是至關重要的。 Grunt 一直是前端領域構建工具(任務運行器或許更準確一些,因為前端構建只是此類工具的一部分用途)的王者,然而它也不是毫無缺陷的,近期風頭正勁的 gulp.js 隱隱有取而代之的態勢。那么,究竟是什么使得 g...

    ShevaKuilin 評論0 收藏0
  • 用什么工具保證一致代碼風格?

    摘要:目前來說基本上有四種工具可以完成,。發展歷程關于保持代碼一致性風格,我們可以追溯到。是啥是針對語言源碼的檢測工具,它的功能就是看看源碼有沒有編寫錯誤,有沒有風格問題。 1. 理解問題 首先這個問題展開來講就是如何在Node.js模塊編寫中保持代碼一致性風格。 目前來說基本上有四種工具可以完成JSLint,JSHint,JSCS,ESLint。 下面將從歷史的角度來看看他們四個有什么關系...

    linkin 評論0 收藏0

發表評論

0條評論

_Suqin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<