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

JSHint 使用說明

系統(tǒng) 1741 0

SHint介紹

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

JSHint文檔

如何使用JSHint

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

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

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

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

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

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

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

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

JSHint的選項配置

asi

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

bitwise

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

boss

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

curly

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

debug

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

eqeqeq

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

eqnull

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

evil

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

forin

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

immed

如果為真,JSHint要求匿名函數(shù)的調(diào)用如下:

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

而不是

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

laxbreak

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

maxerr

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

newcap

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

noarg

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

noempty

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

new? JsUIWindow ();//注意這個調(diào)用是沒有把構(gòu)造器的結(jié)果賦值給變量的

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

nomen

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

onevar

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

passfail

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

plusplus

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

regexp

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

undef

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

sub

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

strict

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

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

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

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

white

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

JSHint 使用說明


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎网址换成什么了2021 | 俄罗斯一级毛片免费视频 | 欧美成人四级剧情在线播放 | 免费观看一区二区 | 日韩欧国产精品一区综合无码 | 综合亚洲欧美 | 一区二区不卡不卡一卡 | 国产在播放一区 | 色站综合 | 欧美日韩在线成人免费 | 久久99精品九九九久久婷婷 | 色婷婷视频 | www.欧美.com| 久久亚洲精选 | 97热在线| 久久国产精品一区 | 久久久这里只有精品免费 | 免费人成黄页网站在线观看 | 四虎影视最新2019百度 | 九天玄帝诀在线观看 | 久久狠色噜噜狠狠狠狠97 | 97中文字幕在线 | 第一福利在线观看永久视频 | 日日做夜夜爱 | 精品久久久久久中文字幕女 | 91视频免费网站 | 婷婷伊人五月 | 99久久综合精品免费 | 色婷婷亚洲 | 一区二区三区在线播放视频 | 性生活视频网站 | 久久99精品久久久久久h | 51毛片| 久久99久久精品久久久久久 | 久久伊人久久亚洲综合 | 日韩经典欧美精品一区 | 深夜福利影院在线观看 | 欧美日韩中文字幕一区二区高清 | 日韩国产欧美成人一区二区影院 | 亚洲69| 高清不卡|