摘要:通用原則嚴(yán)禁使用,只在別無他法時使用。和也是可以使用的,但不用字符串形式而要用函數(shù)。每種類型都代表全局作用域中的一個構(gòu)造函數(shù),并分別表示各自對用的原始值的對象。
語句和表達(dá)式
所有的塊語句都應(yīng)當(dāng)使用花括號。包括:
if
for
while
do…while…
try…catch…finally
//不好的寫法 if (condition) doSomethind(); //不好的寫法 if (condition) doSomething(); //好的寫法 if (condition) { doSomethind(); } //不好的寫法 if (condition) { doSomething(); }花括號的對齊方式
兩種風(fēng)格:第一種將花括號放置在塊語句中第一行代碼的末尾;第二種將左花括號放置于塊語句首行的下一行。
塊語句間隔
語句名、圓括號、和左花括號之間沒有空格間隔
if(condition){
doSomething();
}
在左圓括號之前和右圓括號之后各添加一個空格
if (codition) {
doSomething:
}
在左圓括號后和右圓括號前各添加一個空格
if ( condition ) {
doSomething();
}
個人比較喜歡第二種,易讀但不是太麻煩。
switch語句縮進(jìn)
Java風(fēng)格:
switch (condition) { case "first": //code break; case "second": //code break; default: //code }
每條case語句相對于switch關(guān)鍵字都縮進(jìn)一個層級
從第二條case語句開始,每條case語句前后都各有一個空行。
Dojo風(fēng)格:
switch (condition) { case "first": //code break; case "second": //code break; default: //code }
default
很多人認(rèn)為不論何時都不應(yīng)當(dāng)省略default,哪怕default什么都不做。
個人不太喜歡寫。
咱們就盡量不要寫with語句了。
for-in循環(huán)最好使用hasOwnProperty()方法來為for-in循環(huán)過濾出實例屬性。
var prop; for (prop in object) { if(object.hasOwnProperty(prop)) { console.log("..."); } }
不要把for-in用在數(shù)組的遍歷上
//不好的寫法 var vaules = [1, 2, 3], i; for (i in vaules) { process(item[i]); }變量、函數(shù)和運(yùn)算符 變量聲明
建議將局部變量的定義作為函數(shù)內(nèi)第一條語句。
function doSomethingWithItems(items) { var i, len; var value = 10; var result = value + 10; for (i=0, len=items.length; i < len; i++) { doSomething(items[i]); } }函數(shù)聲明
推薦先聲明JavaScript函數(shù)然后使用函數(shù)。
function doSomething() { //code } doSomething();
此外,函數(shù)聲明不應(yīng)出現(xiàn)在語句塊之內(nèi)。
//不好的寫法
if (condition) { function doSomething() { //code } } else { function doSomething() { //code } }函數(shù)調(diào)用間隔
推薦風(fēng)格:在函數(shù)名和左花括號之間沒有空格。
//好的寫法 doSomething(item); //不好的寫法:看起來想一個塊語句 doSomething (item);立即調(diào)用的函數(shù)
匿名函數(shù)可以通過在最后加上一對圓括號來立即執(zhí)行并返回一個值,然后將這個值賦值給變量。
// 不好的寫法 var value = function() { // 函數(shù)體 return { message: "Hi" } }();
為了讓立即執(zhí)行的函數(shù)能夠被一眼看出來,可以將函數(shù)用一對圓括號包裹起來。
// 好的寫法 var value = (function() { // 函數(shù)體 return { message: "Hi" } }());嚴(yán)格模式
最好不要再全局作用域中使用"use strict"。
// 不好的寫法 - 全局的嚴(yán)格模式 "use strict"; function doSomething() { // code } // 好的寫法 function doSomething() { "use strict"; // code }相等
推薦不要使用 == 和 !=,而應(yīng)當(dāng)使用 === 和 !==。
eval()通用原則:嚴(yán)禁使用Function,只在別無他法時使用eval()。setTimeout()和setInterval()也是可以使用的,但不用字符串形式而要用函數(shù)。
ECMAScript 5 嚴(yán)格模式對于eval()有著嚴(yán)格的限制,禁止在一個封閉的作用域中使用它創(chuàng)建變量或者函數(shù)。
JavaScript里有三種原始包裝類型:String、Boolean和Number。每種類型都代表全局作用域中的一個構(gòu)造函數(shù),并分別表示各自對用的原始值的對象。
// 不好的做法 var name = new String("Nicholas");
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/79275.html
摘要:最近讀完編寫可維護(hù)的,讓我受益匪淺,它指明了編碼過程中,需要注意的方方面面,在團(tuán)隊協(xié)作中特別有用,可維護(hù)性是一個非常大的話題,這本書是一個不錯的起點。擴(kuò)展閱讀編寫可維護(hù)的歡迎來到石佳劼的博客,如有疑問,請在原文評論區(qū)留言,我會盡量為您解答。 最近讀完《編寫可維護(hù)的JavaScript》,讓我受益匪淺,它指明了編碼過程中,需要注意的方方面面,在團(tuán)隊協(xié)作中特別有用,可維護(hù)性是一個非常大的話...
摘要:沒有初始化的變量都會賦值為盡量避免使用因為沒有聲明的變量也會判斷為類型。對象直接量,不建議使用構(gòu)造函數(shù)創(chuàng)建對象數(shù)組直接量,不建議使用構(gòu)造函數(shù)創(chuàng)建數(shù)組 編寫可維護(hù)代碼的重要性 程序是給人讀的,只是偶爾給機(jī)器運(yùn)行一下 1、軟件生命周期的80%成本是發(fā)生在為維護(hù)上;2、幾乎所有的軟件維護(hù)者都不是最初的創(chuàng)建者;3、編寫規(guī)范提高了軟件代碼的可讀性,它讓軟件工程師快速充分的理解代碼; 編寫規(guī)范 縮...
摘要:盡管在類庫中,可能會經(jīng)常用到通常和操作有關(guān),另外三種用法即使也非常罕見。一個通用的原則是,禁止使用,并且只在別無他法時使用,。和也是可以使用的,但不要用字符串形式而要用函數(shù) 再javascript中,eval()的參數(shù)是一個字符串,eval()會將傳入的字符串當(dāng)做代碼來執(zhí)行,開發(fā)者可以通過這個函數(shù)來載入外部的javascript代碼,活著隨機(jī)生成Javascript代碼并執(zhí)行它,比如:...
摘要:寫在前面新司機(jī)最近讀完編寫可維護(hù)的,學(xué)到不少東西。書分為編程風(fēng)格編程實踐自動化三個部分。編程風(fēng)格并不是絕對的,每個人或團(tuán)隊都有自己的編程風(fēng)格,但知道哪些地方需要注意的話,還是有助于新司機(jī)完成代碼風(fēng)格的轉(zhuǎn)變。 寫在前面 新司機(jī)最近讀完《編寫可維護(hù)的JavaScript》,學(xué)到不少東西。書分為編程風(fēng)格、編程實踐、自動化三個部分。其中編程風(fēng)格是你的代碼格式約定,統(tǒng)一的格式不僅僅有利于團(tuán)隊,也...
摘要:如果值是基本類型,則用操作符檢查其類型。總結(jié)所有編程語言都需要可維護(hù)性良好的代碼,這個很重要,因為大部分開發(fā)人員都花費(fèi)大量時間維護(hù)他人的代碼。 o(╯□╰)o 這并不是什么史詩巨作,沒有非常深入去挖掘這類問題,只是從平常的JS代碼習(xí)慣,參考書籍總結(jié)而來,希望對你有幫助的! 今天的web應(yīng)用大至成千上萬行的javascript代碼,執(zhí)行各種復(fù)雜的過程,這種演化讓我們開發(fā)者必...
摘要:由于第四章太稀松平常了于是就直接跳到第五章了這里我就草草的說一下第四章的幾個點吧在嚴(yán)格模式的應(yīng)用下不推薦將用在全局作用域中相等推薦盡量使用和守則如果是在沒有別的方法來完成當(dāng)前任務(wù)這時可以使用原始包裝類型不推薦創(chuàng)建類型時用等創(chuàng)建類型從這一章節(jié) 由于第四章太稀松平常了, 于是就直接跳到第五章了.這里我就草草的說一下第四章的幾個點吧 在嚴(yán)格模式的應(yīng)用下 不推薦將use strict;用在全...
閱讀 3396·2021-09-22 15:17
閱讀 2747·2021-09-02 15:15
閱讀 1769·2019-08-30 15:54
閱讀 2006·2019-08-30 14:02
閱讀 2534·2019-08-29 16:58
閱讀 2994·2019-08-29 16:08
閱讀 1335·2019-08-26 12:24
閱讀 1660·2019-08-26 10:41