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