您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么寫好JavaScript,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
編碼形象
以上我提出了編碼形象的概念,我個人認為:
編碼形象 = 編碼風格 + 編碼規范
一個良好的編碼形象就等于一個穿著得體的青年,對于程序員來說這是同行了解你優秀能力的最直接最簡單的方式。
我們來看一下一段糟糕的編碼形象:
//打個招呼 function func(){ var age=18,sex='man'; var greeting='hello'; if(age<=18&&sex=='man'){ console.log(greeting+'little boy') } ... } func()
上方代碼整體縮在了一起,缺乏規范意識,閱讀體驗很差,不忍直視。
再來看一段良好的代碼形象:
// 打個招呼 function greetFn() { var age = 18, sex = 'man', greeting = 'hello'; if (age <= 18 && sex === 'man') { console.log(greeting + 'little boy'); } ... }; greetFn();
上方的代碼是不是感覺舒服多了?
由此可見養成一個良好的編碼形象是至關重要的,而本文主要講解的是基于JavaScript的編碼形象,即基于JavaScript的編碼風格和編碼規范。
那么什么是編碼風格,什么是編碼規范,兩者的區別又是什么?
編碼風格
首先編碼風格既然是風格,就沒有對錯之分。就好比每個人的穿著打扮不同,有的人穿的比較得體,有的人穿的比較隨意而已。
而在JavaScript編碼風格中,也有一套比較得體的風格,尤其在團隊開發中,我們不能隨意的書寫屬于自己的風格。
下面就列舉幾種隨意的編碼風格,并將其與良好的編碼風格進行對比。
1.合理注釋
// 不推薦的寫法 var name = '勞卜';//代碼和注釋之間沒有間隔 if (name) { /* *注釋之前無空行 *星號后面無空格 */ }
// 推薦的寫法 var name = '勞卜'; // 代碼和注釋之間有間隔 if (name) { /* * 注釋之前有空行 * 星號后面有空格 */ }
2.合理間隔
// 不推薦的寫法 var name='勞卜'; // 等號和兩側之間沒有間隔 // if塊級語句間沒有間隔 if(name){ console.log('hello'); }
// 推薦的寫法 var name = '勞卜'; // 等號和兩側之間有間隔 // if塊級語句間有間隔 if (name) { console.log('hello'); }
3.合理縮進
// 不推薦的寫法:沒有合理縮進 function getName() { console.log('勞卜'); }
// 推薦的寫法:合理縮進 function getName() { console.log('勞卜'); }
4.合理空行
// 不推薦的寫法: 代碼功能塊之間沒有空行 function getName() { var name = '勞卜'; if (name) { console.log('hello'); } }
// 推薦的寫法:代碼功能塊之間有空行 function getName() { var name = '勞卜'; if (name) { console.log('hello'); } }
5.合理命名
// 不推薦的寫法 var getName = '勞卜'; // 變量命名前綴為動詞 // 函數命名前綴為名詞 function name() { console.log('hello'); }
// 推薦的寫法 var name = '勞卜'; // 變量命名前綴為名詞 // 函數命名前綴為動詞 function getName() { console.log('hello'); }
6.合理聲明
// 不推薦的寫法:函數在聲明之前使用 getName(); function getName() { console.log('hello'); }
// 推薦的寫法:函數在聲明之后使用 function getName() { console.log('hello'); } getName();
7.合理結尾
// 不推薦的寫法:沒有使用分號結尾 var name = '勞卜' var getName = function() { console.log('hello') }
// 推薦的寫法:使用分號結尾 var name = '勞卜'; var getName = function() { console.log('hello'); };
以上主要列舉了7個比較常見的編碼風格的例子進行了比較,在推薦的寫法和不推薦的寫法中兩者并沒有對錯之分,只是推薦的寫法相比較而言更容易閱讀和維護,更適用于團隊開發,也是良好編碼形象的體現。
編碼規范
對于編碼規范,既然是規范,那我們就應該按照一定的規則來編寫。隨意編寫違反編碼規范的代碼,可能會導致程序的出錯和潛在的bug,因此其相對于編碼風格來說應該更加嚴謹,也有人會把編碼風格包含在編碼規范之中。
下面就列舉幾個常見的實例代碼:
1.比較參數
// 不推薦的寫法:==和!=比較時會進行類型轉換,應盡量避免使用 var num = 123; if (num == '123') { console.log(num); } else if (num != '321') { console.log('321'); }
// 推薦的寫法:使用===和!==來進行比較 var num = 123; if (num === '123') { console.log(num); } else if (num !== '321') { console.log('321'); }
2.包裹if語句
// 不推薦的寫法:if語句不用大話號包裹會出現潛在bug var num = 123; if (num === '123') console.log(num);
// 推薦的寫法:if語句用大話號包裹 var num = 123; if (num === '123') { console.log(num); }
3.慎用eval
// 不推薦的寫法:應避免使用eval,不安全,非常耗性能(一次解析成js語句,一次執行) var json = '{"name": "勞卜", "func": alert("hello")}'; eval('(' + json + ')'); // 彈出“hello”
// 推薦的寫法 var json = '{"name": "勞卜", "func": alert("hello")}'; JSON.parse(json); // 校驗報錯
4.判斷類型
// 不推薦的寫法:用typeof來判斷構造函數創建的對象 var str = new String('勞卜'); console.log(typeof str); // 'object'
// 推薦的寫法:用instanceof來判斷構造函數創建的對象 var str = new String('勞卜'); console.log(str instanceof String); // true
5.檢測屬性
// 不推薦的寫法:使用undefined和null來檢測一個屬性是否存在 if (obj['name'] !== undefined) { console.log('name屬性存在'); // 若obj.name為undefined時則會導致判斷出錯 } if (obj['name'] !== null) { console.log('name屬性存在'); // 若obj.name為null時則會導致判斷出錯 }
// 推薦的寫法:使用in運算符來檢測對象屬性是否存在,使用hasOwnProperty方法來檢測不包含原型鏈上的對象屬性是否存在 if ('name' in obj) { console.log('name屬性存在'); } if (obj.hasOwnProperty('name')) { console.log('name屬性存在'); }
以上主要列舉了5個常見的編碼規范的例子,合理地規范自己的代碼能夠很大程度上減少不必要的維護成本和潛在的bug風險,對于JavaScript學習者來說應該銘記于心。
關于“怎么寫好JavaScript”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。