日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript-總結(jié)常用代碼書寫規(guī)范

瀏覽:130日期:2023-11-16 18:30:50
javascript 代碼規(guī)范

代碼規(guī)范我們應(yīng)該遵循古老的原則:“能做并不意味著應(yīng)該做”。

JavaScript-總結(jié)常用代碼書寫規(guī)范

全局命名空間污染

總是將代碼包裹在一個(gè)立即的函數(shù)表達(dá)式里面,形成一個(gè)獨(dú)立的模塊。

不推薦

var x = 10, y = 100;console.log(window.x + ' ' + window.y);

推薦

;(function(window){ 'use strict'; var x = 10,y = 100; console.log(window.x + ' ' + window.y);}(window));立即執(zhí)行函數(shù)

立即執(zhí)行函數(shù)里面,如果有用到全局變量應(yīng)該通過變量傳遞的方式,讓立即執(zhí)行函數(shù)的函數(shù)體在調(diào)用時(shí),能以局部變量的形式調(diào)用,在一定程度上提升程序性能。

并且應(yīng)該在立即執(zhí)行函數(shù)的形參里加上undefined,在最后一個(gè)位置,這是因?yàn)镋S3里undefined是可以讀寫的,如果在全局位置更改undefined的值,你的代碼可能得不到逾期的結(jié)果。

另外推薦在立即執(zhí)行函數(shù)開始跟結(jié)尾都添加上分號(hào),避免在合并時(shí)因?yàn)閯e人的代碼不規(guī)范而影響到我們自己的代碼

不推薦

(function(){ 'use strict'; var x = 10,y = 100,c,elem=$('body'); console.log(window.x + ' ' + window.y); $(document).on('click',function(){ }); if(typeof c==='undefined'){//你的代碼 }}());

推薦

;(function($,window,document,undefined){ 'use strict'; var x = 10,y = 100,c,elem=$('body'); console.log(window.x + ' ' + window.y); $(document).on('click',function(){ }); if(typeof c==='undefined'){//你的代碼 }}(jQuery,window,document));嚴(yán)格模式

ECMAScript 5 嚴(yán)格模式可在整個(gè)腳本或獨(dú)個(gè)方法內(nèi)被激活。它對(duì)應(yīng)不同的 javascript 語境會(huì)做更加嚴(yán)格的錯(cuò)誤檢查。嚴(yán)格模式也確保了 javascript 代碼更加的健壯,運(yùn)行的也更加快速。

嚴(yán)格模式會(huì)阻止使用在未來很可能被引入的預(yù)留關(guān)鍵字。

你應(yīng)該在你的腳本中啟用嚴(yán)格模式,最好是在獨(dú)立的 立即執(zhí)行函數(shù) 中應(yīng)用它。避免在你的腳本第一行使用它而導(dǎo)致你的所有腳本都啟動(dòng)了嚴(yán)格模式,這有可能會(huì)引發(fā)一些第三方類庫的問題。

不推薦

'use strict';(function(){}());

推薦

(function(){ 'use strict';}());變量聲明

對(duì)所有的變量聲明,我們都應(yīng)該指定var,如果沒有指定var,在嚴(yán)格模式下會(huì)報(bào)錯(cuò),并且同一個(gè)作用域內(nèi)的變量應(yīng)該盡量采用一個(gè)var去聲明,多個(gè)變量用“,”隔開。

不推薦

function myFun(){ x=5; y=10;}

不完全推薦

function myFun(){ var x=5; var y=10;}

推薦

function myFun(){ var x=5,y=10;}使用帶類型判斷的比較判斷

總是使用 === 精確的比較操作符,避免在判斷的過程中,由 JavaScript 的強(qiáng)制類型轉(zhuǎn)換所造成的困擾。

如果你使用 === 操作符,那比較的雙方必須是同一類型為前提的條件下才會(huì)有效。

不推薦

(function(w){ 'use strict'; w.console.log('0' == 0); // true w.console.log('' == false); // true w.console.log('1' == true); // true w.console.log(null == undefined); // true var x = { valueOf: function() { return 'X'; } }; w.console.log(x == 'X');//true}(window.console.log));

推薦

(function(w){ 'use strict'; w.console.log('0' === 0); // false w.console.log('' === false); // false w.console.log('1' === true); // false w.console.log(null === undefined); // false var x = { valueOf: function() { return 'X'; } }; w.console.log(x === 'X');//false}(window));變量賦值時(shí)的邏輯操作

邏輯操作符 || 和 && 也可被用來返回布爾值。如果操作對(duì)象為非布爾對(duì)象,那每個(gè)表達(dá)式將會(huì)被自左向右地做真假判斷。基于此操作,最終總有一個(gè)表達(dá)式被返回回來。這在變量賦值時(shí),是可以用來簡(jiǎn)化你的代碼的。

不推薦

if(!x) { if(!y) { x = 1; } else { x = y; }}

推薦

x = x || y || 1;分號(hào)

總是使用分號(hào),因?yàn)殡[式的代碼嵌套會(huì)引發(fā)難以察覺的問題。當(dāng)然我們更要從根本上來杜絕這些問題[1] 。以下幾個(gè)示例展示了缺少分號(hào)的危害:

// 1.MyClass.prototype.myMethod = function() { return 42;} //這里沒有分號(hào)(function() {})(); //2.var x = { 'i': 1, 'j': 2} // 這里沒有分號(hào)//我知道這樣的代碼你可能永遠(yuǎn)不會(huì)寫,但是還是舉一個(gè)例子[ffVersion, ieVersion][isIE](); // 3.var THINGS_TO_EAT = [apples, oysters, sprayOnCheese] // 這里沒有分號(hào)-1 == resultOfOperation() || die();

錯(cuò)誤結(jié)果

JavaScript 錯(cuò)誤 —— 首先返回 42 的那個(gè) function 被第二個(gè)function 當(dāng)中參數(shù)傳入調(diào)用,接著數(shù)字 42 也被“調(diào)用”而導(dǎo)致出錯(cuò)。

八成你會(huì)得到 ‘no such property in undefined’ 的錯(cuò)誤提示,因?yàn)樵谡鎸?shí)環(huán)境中的調(diào)用是這個(gè)樣子:xffVersion, ieVersion().

die 總是被調(diào)用。因?yàn)閿?shù)組減 1 的結(jié)果是 NaN,它不等于任何東西(無論 resultOfOperation 是否返回 NaN)。所以最終的結(jié)果是 die() 執(zhí)行完所獲得值將賦給 THINGS_TO_EAT.

語句塊內(nèi)的函數(shù)聲明

切勿在語句塊內(nèi)聲明函數(shù),在 ECMAScript 5 的嚴(yán)格模式下,這是不合法的。函數(shù)聲明應(yīng)該在作用域的頂層。但在語句塊內(nèi)可將函數(shù)申明轉(zhuǎn)化為函數(shù)表達(dá)式賦值給變量。

不推薦

if (x) { function foo() {}}

推薦

if (x) { var foo = function() {};}不要使用eval函數(shù)

eval() 不但混淆語境還很危險(xiǎn),總會(huì)有比這更好、更清晰、更安全的另一種方案來寫你的代碼,因此盡量不要使用 eval 函數(shù)。

數(shù)組和對(duì)象字面量1.用數(shù)組和對(duì)象字面量來代替數(shù)組和對(duì)象構(gòu)造器。數(shù)組構(gòu)造器很容易讓人在它的參數(shù)上犯錯(cuò)。

不推薦

//數(shù)組長(zhǎng)度3var a1 = new Array(x1, x2, x3);//數(shù)組長(zhǎng)度2var a2 = new Array(x1, x2);//如果x1是一個(gè)自然數(shù),那么它的長(zhǎng)度將為x1//如果x1不是一個(gè)自然數(shù),那么它的長(zhǎng)度將為1var a3 = new Array(x1);var a4 = new Array();

正因如此,如果將代碼傳參從兩個(gè)變?yōu)橐粋€(gè),那數(shù)組很有可能發(fā)生意料不到的長(zhǎng)度變化。為避免此類怪異狀況,請(qǐng)總是采用可讀的數(shù)組字面量。

推薦

var a = [x1, x2, x3];var a2 = [x1, x2];var a3 = [x1];var a4 = [];2.對(duì)象構(gòu)造器不會(huì)有類似的問題,但是為了可讀性和統(tǒng)一性,我們應(yīng)該使用對(duì)象字面量。

不推薦

var o = new Object();var o2 = new Object();o2.a = 0;o2.b = 1;o2.c = 2;o2['strange key'] = 3;

推薦

var o = {};var o2 = { a: 0, b: 1, c: 2, 'strange key': 3};三元條件判斷(if 的快捷方法)

用三元操作符分配或返回語句。在比較簡(jiǎn)單的情況下使用,避免在復(fù)雜的情況下使用。沒人愿意用 10 行三元操作符把自己的腦子繞暈。

不推薦

if(x === 10) { return 'valid';} else { return 'invalid';}

推薦

return x === 10 ? 'valid' : 'invalid';for循環(huán)

使用for循環(huán)過程中,數(shù)組的長(zhǎng)度,使用一個(gè)變量來接收,這樣有利于代碼執(zhí)行效率得到提高,而不是每走一次循環(huán),都得重新計(jì)算數(shù)組長(zhǎng)度

不推薦

for(var i=0;i<arr.length,i++){}

推薦

for(var i=0,len=arr.length;i<len,i++){}重復(fù)的dom操作

重復(fù)的dom操作,使用一個(gè)變量來進(jìn)行接收很有必要,而不是頻繁的去操作dom樹,這對(duì)性能與代碼的整潔及易維護(hù)性帶來不好的影響

不推薦

$('.myDiv').find('.span1').text('1');$('.myDiv').find('.span2').text('2');$('.myDiv').find('.span3').text('3');$('.myDiv').find('.span4').text('4');

推薦

var mydiv=$('.myDiv');mydiv.find('.span1').text('1');mydiv.find('.span2').text('2');mydiv.find('.span3').text('3');mydiv.find('.span4').text('4');

在jquery .end()可使用的情況下應(yīng)該優(yōu)先使用.end()

推薦

$('.myDiv').find('.span1').text('1') .end().find('.span2').text('2'); .end().find('.span3').text('3'); .end().find('.span4').text('4');注釋規(guī)范

在描寫注釋時(shí),推薦格式化且統(tǒng)一的注釋風(fēng)格,在寫注釋時(shí)盡量描述寫代碼時(shí)的思路,而不是代碼做了什么。

不推薦

//獲取訂單function getOrderByID(id){ var order; //... return order;}

方法的注釋應(yīng)該統(tǒng)一用塊級(jí)注釋

推薦

/** * 根據(jù)訂單id獲取訂單詳細(xì)數(shù)據(jù) * @param {[number]} id [訂單ID] * @return {[order]} [訂單詳細(xì)信息] */function getOrderByID(id){ var order; //... return order;}

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
9999国产精品| 国产极品久久久久久久久波多结野| 国产日韩免费| 国产精品一区二区精品视频观看| 欧美一区二区三区免费看| 日韩三级精品| 美腿丝袜亚洲一区| 日韩精品dvd| 激情欧美国产欧美| 免播放器亚洲| 国产欧美丝祙| 国产精品亚洲综合在线观看| 久久97视频| 欧美成人久久| 亚洲理论在线| 福利一区和二区| 1024精品久久久久久久久| 免费在线视频一区| 国产经典一区| 成人av二区| 亚洲精品无吗| 成人国产精选| 日韩一区精品字幕| 日本少妇精品亚洲第一区| 精品免费在线| 国产免费成人| 国产精品欧美大片| 精品在线99| 国产激情精品一区二区三区| 99久久亚洲精品| 久久精品99国产精品日本| 成人久久一区| 欧美日韩xxxx| 在线国产一区二区| 国产精品久av福利在线观看| 欧美日韩第一| 亚洲精品美女91| 日本久久综合| 免费看久久久| 欧美日韩在线观看视频小说| 亚洲综合二区| 久久福利毛片| 精品三级av在线导航| 亚洲欧美高清| 日韩高清中文字幕一区| 久久午夜精品| 国内精品麻豆美女在线播放视频| 久久久久观看| 精品精品国产三级a∨在线| 亚洲一级网站| 免费在线播放第一区高清av| 国产亚洲精品自拍| 国产精品99在线观看| 日韩精品a在线观看91| 亚洲成人二区| 高清日韩欧美| 日韩中文字幕在线一区| 国内精品福利| 国产精品毛片一区二区在线看| 午夜久久av| 激情欧美一区| 成人美女视频| 国产一区二区三区日韩精品| 欧美天堂一区| 少妇精品久久久| 亚洲一区二区成人| 91成人网在线观看| 亚洲不卡av不卡一区二区| 国产精品国产一区| 欧美国产先锋| 国产欧美一区| 亚洲精品精选| 国产精品视区| 伊人精品一区| 色婷婷狠狠五月综合天色拍| 亚洲黄色中文字幕| 日本一区二区免费高清| 国产精品网址| 国产精品视频一区二区三区| 久久狠狠久久| 国产精品探花在线观看| 国产无遮挡裸体免费久久| 日韩中文字幕| 国产午夜一区| 久久av免费| 欧美精品不卡| 欧美激情视频一区二区三区免费| 日本欧美在线| 国产欧美日韩精品一区二区免费| 欧美精品国产| 精品免费在线| 欧美韩日一区| 欧美日韩视频免费观看| 日韩欧美综合| 激情综合在线| 久久国产精品久久w女人spa| 久久福利影视| 日韩1区2区3区| 欧美精品影院| 久久三级毛片| 日韩欧美精品| 国产一区二区中文| 欧美日韩国产在线一区| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品免费不| 国产精品一卡| 91亚洲一区| 99久久久久久中文字幕一区| 精品欧美久久| 亚洲欧洲美洲国产香蕉| 天堂va在线高清一区| 国产欧美丝祙| 一本大道色婷婷在线| 亚洲精品888| 亚洲毛片一区| 老牛国内精品亚洲成av人片| 亚洲天堂资源| 玖玖精品视频| 国产欧美一区二区三区精品观看| 国产精品欧美大片| 99精品视频精品精品视频| 亚洲欧美视频一区二区三区| 日韩三级一区| 一区二区三区四区日本视频| 欧美精品九九| 国产免费播放一区二区| 国产一区二区三区亚洲| 欧美不卡在线| 欧美永久精品| 欧美伊人影院| 激情久久婷婷| 久久国际精品| 欧美手机在线| 国产乱子精品一区二区在线观看| 成人美女视频| 婷婷精品在线| 视频二区不卡| 日韩av在线播放中文字幕| 日韩高清中文字幕一区二区| 最近国产精品视频| 精品五月天堂| 久久国产高清| 亚洲天堂av影院| 日韩欧美精品一区二区综合视频| 福利精品在线| 日韩免费精品| 99精品小视频| 欧美亚洲一级| 国产精品美女| 国产在线看片免费视频在线观看| 蜜桃视频在线观看一区| 中文字幕成在线观看| 中文无码日韩欧| 久久久国产亚洲精品| 国产精品高清一区二区| 亚洲欧洲一区二区天堂久久| 国产精品片aa在线观看| 国产精品日韩久久久| 四虎国产精品免费观看| 日韩激情av在线| 欧美+日本+国产+在线a∨观看| 国产精品nxnn| 亚洲九九精品| 国产精品7m凸凹视频分类| 久久一区精品| 日本不卡高清| 中文欧美日韩| а√在线中文在线新版| 国产精品v一区二区三区| 亚洲一区二区三区四区电影| 香蕉视频亚洲一级| 国产精品2区| 日韩中出av| 一区二区亚洲视频| 午夜精品影院| 久久久久免费av| 精品国产a一区二区三区v免费| 婷婷综合成人| 自拍自偷一区二区三区| 欧美综合另类| 九九精品调教| 国产v日韩v欧美v| 欧美精品97| 国产亚洲高清一区| 日韩一区二区三区在线看| 中日韩男男gay无套| 亚洲不卡av不卡一区二区| 国产精品原创| 久久久久久网| 欧美www视频在线观看| 欧美xxxx性| 久久不见久久见免费视频7| 日本午夜精品| 日韩av一区二区三区四区| 亚洲a成人v| 日韩av不卡一区二区| 欧美视频久久| 国产极品一区| 国产不卡精品| 97人人精品|