亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

JSHint 使用說明

系統(tǒng) 2008 0

SHint介紹

翻譯自www.jshint.comJSHint(注意不是jslint:))是一個由javascript社區(qū)驅動開發(fā)的用于檢查javascript代碼錯誤和問題的工具,有了他,可以使你保持一個良好的編碼風格。你可以很簡單的配置它以適應你目前的一個編碼風格。目前JSHint的源碼可以在github上面找到。

JSHint文檔

如何使用JSHint

JSHint是一個全局的函數,他接受兩個參數,JSHint(source,options);一個是代碼source,另一個是options(選項)第一個參數可以是一個字符串或者是一個字符串數組。如果是字符串,則他會被\n和\r分割,如果傳入的參數是數組,就要保證數組的每一項是一行代碼。因此源碼參數可以是javascript代碼或者是一個json形式。如果所有的檢測都ok,JSHint會返回true,否則就返回false。當返回false的時候,你可以用JSHint.errors來獲取錯誤信息或者用JSHint.data()來獲取lint的信息。如果要了解更多,參見源代碼。使用JSHint,你可以在js文件的開始設定選項,例如

/*jshint evil:true, boss:true */

而設定global參數可以告訴JSHint,全局的變量配置。例如

/*global DISQUS: true, jQuery: false */

以上的這個例子是告訴JSHint,DISQUS是你自己聲明的全局變量,而jQuery是你引入的全局變量

JSHint和JSLint有什么區(qū)別?

JSHint是JSLint的一個分支(fork),他比JSLint更加的便捷。用來約束你的代碼質量和編碼風格。每個人都有不一樣的編碼習慣和風格,JSHint通過配置可以適應于各種情況。JSHint的適用環(huán)境

  • 瀏覽器環(huán)境(browsers)
  • Node.js
  • jQuery
  • ES5
  • CouchDB
  • Prototype.js
  • Mootools.js

JSHint的選項配置

asi

如果是真,JSHint會無視沒有加分號的行尾,自動補全分號一直是Javascript很有爭議的一個語法特性。默認,JSHint會要求你在每個語句后面加上分號,但是如果你認為自己理解了asi(automatic semicolon insertion),你可以拋棄JSHint對分號的檢查。

bitwise

如果為真,JSHint會禁用位運算符Javascript允許位運算,但是他卻沒有整型,位運算符要把參與運算的數字從浮點數變?yōu)檎麛担⒃谶\算后再轉換回來。這樣他們的效率就不如在別的語言中那么高。

boss

很霸氣的選項,如果為真,那么JSHint會允許在if,for,while里面編寫賦值語句。一般來說,我們會在循環(huán)、判斷等語句中加入值的比較來做語句的運行條件,有時候會把==錯寫成賦值的=,通常,JSHint會把這個認定為一個錯誤,但是開啟這個選項的化,JSHint就不會檢查判斷條件中的賦值 ,你是boss,你說的算:)。

curly

如果為真,JSHint會要求你在使用if和while等結構語句時加上{}來明確代碼塊。Javascript允許在if等結構語句體只有一句的情況下不加括號。不過這樣做可能會讓你的代碼讀起來有些晦澀。

debug

如果為真,JSHint會允許代碼中出現debugger的語句。不過建議你最好在檢測代碼前去掉debug的語句。

eqeqeq

如果為真,JSHint會看你在代碼中是否都用了===或者是!==,而不是使用==和!=。我們建議你在比較0,''(空字符),undefined,null,false和true的時候使用===和!===。

eqnull

如果為真,JSHint會允許使用"== null"作比較。== null 通常用來判斷一個變量是undefined或者是null(當時用==,null和undefined都會轉化為false)。

evil

如果為真,JSHint會允許使用evaleval提供了訪問Javascript編譯器的途徑,這有時很有用,但是同時也對你的代碼形成了注入攻擊的危險,并且會對debug造成一些困難。記住,Function構造函數也是另一個‘eval’,另外,當傳入的參數是字符串的時候,setTimeout和setInterval也會類似于eval。

forin

如果為真,那么,JSHint允許在for in 循環(huán)里面不出現hasOwnProperty,for in循環(huán)一般用來遍歷一個對象的屬性,這其中也包括他繼承自原型鏈的屬性,而hasOwnProperty可以來判斷一個屬性是否是對象本身的屬性而不是繼承得來的。

immed

如果為真,JSHint要求匿名函數的調用如下:

(function(){//}());

而不是

(function(){//bla bla})();

laxbreak

如果為真,JSHint則不會檢查換行。Javascript會通過自動補充分號來修正一些錯誤,因此這個選項可以檢查一些潛在的問題。

maxerr

設定錯誤的閾值,超過這個閾值jshint不再向下檢查,提示錯誤太多。

newcap

如果為真,JSHint會要求每一個構造函數名都要大寫字母開頭。構造器是一種使用new運算符來創(chuàng)建對象的一種函數,new操作符會創(chuàng)建新的對象,并建立這個對象自己的this,一個構造函數如果不用new運算符來運行,那么他的this會指向全局對象而導致一些問題的發(fā)生。

noarg

如果為真,JSHint會禁止arguments.caller和arguments.callee的使用arguments對象是一個類數組的對象,它具有一個索引值。arguments.callee指向當前執(zhí)行的函數(這個在ES5的嚴格模式中被禁用了),而arguments.caller指向調用當前函數的函數(如果有的話),并且,他并不是在所有的Javascript實現里面都有。

noempty

如果為真,JSHint會禁止出現空的代碼塊(沒有語句的代碼塊)。如果為真,JSHint會禁用構造器,以避免一些問題。在JSLint中會主動禁用構造器的方式以避免一些潛在問題,但其實很多構造器的使用并非有害,例如如下的調用

new? JsUIWindow ();//注意這個調用是沒有把構造器的結果賦值給變量的

因此,我們需要使用構造器的時候可以禁用這個選項。

nomen

如果為真,JSHint會禁用下劃線的變量名。很多人使用_name的方式來命名他們的變量,以說明這是一個私有變量,但實際上,并不是,下劃線只是做了一個標識。如果要使用私有變量,可以使用閉包來實現。

onevar

如果為真,JSHint期望函數只被var的形式聲明一遍。

passfail

如果為真,JSHint會在發(fā)現首個錯誤后停止檢查。

plusplus

如果為真,JSHint會禁用自增運算和自減運算++和--可能會帶來一些代碼的閱讀上的困惑。

regexp

如果為真,JSHint會不允許使用.和[^...]的正則,因為這樣的正則往往會匹配到你不期望的內容,并可能會應用造成一些危害。

undef

如果為真,JSHint會要求所有的非全局變量,在使用前都被聲明。如果你不在一個本地作用域內使用var的方式來聲明變量,Javascript會把它放到全局作用域下面。這樣會很容易引起錯誤。

sub

如果為真,JSHint會允許各種形式的下標來訪問對象。通常,JSHint希望你只是用點運算符來讀取對象的屬性(除非這個屬性名是一個保留字),如果你不希望這樣可以關閉這個選項。

strict

如果為真,JSHint會要求你使用use strict;語法。Strict 模式是ES5里面的一個新特性,他允許你把一個程序或者函數放在一個“嚴格”的作用域中。可見Resig寫的一篇關于嚴格模式的blog嚴格模式做了幾件事情:

1、他可以捕獲一些錯誤和異常

2、當我們進行一下“不安全”的操作時,他會拋異常,例如訪問全局變量。

3、他會禁止你使用一些奇淫技巧,或者不良的代碼編寫。

white

如果為true,JSHint會依據嚴格的空白規(guī)范檢查你的代碼。

JSHint 使用說明


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 在线观看福利影院 | 久久中文字幕免费视频 | 久久综合给合久久狠狠狠97色 | 欧美99热| 国产成a人片在线观看视频99 | 久久久久久久综合色一本 | 亚洲欧美国产高清va在线播放 | 欧美日韩亚洲国产综合 | 日本一级毛片视频 | 国产精品视频一区二区三区经 | 欧美久久网 | 一级毛片在线视频 | 人人爰人人人人人鲁 | 日韩免费成人 | 成人精品第一区二区三区 | 欧美色视频日本片高清在线观看 | 91青青青| 欧美α片无限看在线观看免费 | 成人爱爱爱欧美日本视频 | 农村寡妇一级毛片免费看视频 | 亚洲免费美女视频 | 91九色国产 | 香焦视频在线观看黄 | 亚洲欧美日韩综合精品网 | 久久的爱久久久久的快乐 | 亚州视频一区二区 | 久久天天躁日日躁狠狠躁 | 奇米在线观看视频 | 伊人成年综合网 | 欧美福利精品福利视频在线观看 | 女性一级全黄生活片在线播放 | 成人亚洲精品 | 2020亚洲欧美日韩在线观看 | 国产亚洲欧美成人久久片 | 亚洲成a人v在线观看 | 男女91视频 | 久久精品操| 亚洲日韩欧美一区二区在线 | 韩国女主播一区二区三区视频 | 夜夜骑夜夜操 | 精品在线一区二区三区 |