摘要:如果團隊成員文件合并,可能會讓團隊其他成員的代碼報錯推薦函數(shù)內(nèi)部,即布局作用域內(nèi)使用相等兩個等號判斷相等,容易出現(xiàn)強制類型轉(zhuǎn)換推薦使用三個等于號用來判斷相等原始包裝類型避免使用參考資料編寫可維護的
本文為《編寫可維護的JavaScript》讀書筆記
1、變量
變量名遵守駝峰大小寫命名法
命名前綴可為名詞,這樣可與函數(shù)名區(qū)分
常量利用大寫字母和下劃線(用來分隔單詞)來命名
所有變量聲明放在函數(shù)頂部
函數(shù)頂部使用單var語句聲明變量, 不同變量之間使用 "," 分隔開
2、函數(shù)
先聲明函數(shù)然后使用函數(shù)
函數(shù)調(diào)用寫法推薦:
doSomthing(); //在函數(shù)名和左括號之間沒有空格,與塊語句區(qū)分開來
立即執(zhí)行函數(shù)
var value = (function(){...})(); //將函數(shù)用一對圓括號包裹起來,增強代碼的可讀性
3、null
適用場景:
初始化變量,它可能賦值為一個對象
用來與已經(jīng)初始化的變量(可以是也可以不是一個對象)比較
當函數(shù)的參數(shù)期望是對象時,用作參數(shù)傳入
函數(shù)返回值為對象時,用作返回值傳出
不適用場景
不要用null來檢測是否傳入某個參數(shù)
不要用null來檢測一個未初始化的變量
4、undefined(被初始化變量的初始值,表示這個變量等待被賦值)
避免使用undefined
變量為聲明,可將其賦值為null
5、注釋
注釋與語句不在同一行時,注釋之前需要空行
在同一行,注釋和代碼之間需要空行
添加注釋的原則:
難于理解
代碼看上去有錯誤,實際沒有
瀏覽器特性hack時(例如,原生js綁定事件)
關(guān)于注釋,推薦使用插件DocBlockr
6、語句
不論塊語句包含多行代碼還是單行代碼,都應(yīng)當是使用花括號
塊語句包括:
if
for
while
do...while
try...catch...finally
塊語句間隔風格推薦:
if (condition) {} //在括左圓括號之前和右圓括號之后各添加一個空格
7、case語句的連續(xù)執(zhí)行問題(在switch語句中執(zhí)行完一個case之后繼續(xù)執(zhí)行下一個case):
switch (condition) { case "first": case "second": //代碼 break; default: //代碼 }
case連續(xù)執(zhí)行可以有意為之,但是需要添加注釋
8、with:禁止使用
9、for循環(huán)注意事項:盡可能避免使用continue
10、for-in循環(huán)
不僅遍歷對象的實例屬性,而且遍歷從原型繼承過來的屬性
最好使用 hasOwnProperty 來為for-in循環(huán)過濾出實例屬性
禁止用來遍歷數(shù)組成員
11、嚴格模式
不推薦在全局作用域內(nèi)使用。如果團隊成員文件合并,可能會讓團隊其他成員的代碼報錯
推薦函數(shù)內(nèi)部,即布局作用域內(nèi)使用
12、相等
兩個等號判斷相等,容易出現(xiàn)強制類型轉(zhuǎn)換
推薦使用三個等于號用來判斷相等
13、原始包裝類型
`var name = new String("Nicholas");`
避免使用
參考資料:《編寫可維護的JavaScript》
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/78744.html
摘要:刪除不必要的代碼。而簡化前的代碼包含的語法要素對于傳達代碼意義本身作用并不大。刪除不必要的代碼有時候,我們試圖為不必要的事物命名。例如,大多數(shù)情況下,你應(yīng)該省略僅僅用來當做返回值的變量。你的函數(shù)名應(yīng)該已經(jīng)說明了關(guān)于函數(shù)返回值的信息。 原文地址 本文已在前端早讀課公眾號首發(fā):【第952期】JavaScript代碼風格要素 譯者:墨白 校對:野草 1920年,由威廉·斯特倫克(Will...
摘要:避免脆弱的基類問題。紅牌警告沒有提到上述任何問題。單向數(shù)據(jù)流意味著模型是單一的事實來源。單向數(shù)據(jù)流是確定性的,而雙向綁定可能導致更難以遵循和理解的副作用。原文地址 1. 你能說出兩種對 JavaScript 應(yīng)用開發(fā)者而言的編程范式嗎? 希望聽到: 2. 什么是函數(shù)編程? 希望聽到: 3. 類繼承和原型繼承的不同? 希望聽到 4. 函數(shù)式編程和面向?qū)ο缶幊痰膬?yōu)缺點? ...
摘要:整理收藏一些優(yōu)秀的文章及大佬博客留著慢慢學習原文協(xié)作規(guī)范中文技術(shù)文檔協(xié)作規(guī)范阮一峰編程風格凹凸實驗室前端代碼規(guī)范風格指南這一次,徹底弄懂執(zhí)行機制一次弄懂徹底解決此類面試問題瀏覽器與的事件循環(huán)有何區(qū)別筆試題事件循環(huán)機制異步編程理解的異步 better-learning 整理收藏一些優(yōu)秀的文章及大佬博客留著慢慢學習 原文:https://www.ahwgs.cn/youxiuwenzhan...
摘要:所有的塊語句都應(yīng)當使用花括號包括花括號的對齊方式第一種風格第二種風格塊語句間隔第一種在語句名圓括號和左花括號之間沒有空格間隔第二種在左圓括號之前和右圓括號之后各添加一個空格第三種在左圓括號后和右圓括號前各添加一個空格我個人喜歡在右括號之后添 所有的塊語句都應(yīng)當使用花括號, 包括: if for while do...while... try...catch...finally 3....
摘要:使用異步編程,有一個事件循環(huán)。它作為面向?qū)ο缶幊痰奶娲桨?,其中?yīng)用狀態(tài)通常與對象中的方法搭配并共享。在用面向?qū)ο缶幊虝r遇到不同的組件競爭相同的資源的時候,更是如此。 翻譯:瘋狂的技術(shù)宅原文:https://www.indeed.com/hire/i... 本文首發(fā)微信公眾號:jingchengyideng歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 不管你是面試官還是求職者,里面...
閱讀 1301·2021-11-24 09:39
閱讀 2679·2021-09-30 09:47
閱讀 1335·2021-09-22 15:15
閱讀 2424·2021-09-10 10:51
閱讀 1973·2019-08-30 15:55
閱讀 2984·2019-08-30 11:06
閱讀 905·2019-08-30 10:53
閱讀 845·2019-08-29 17:26