成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

四個編寫JavaScript代碼的關(guān)鍵原則

開發(fā) 前端
JavaScript 是一種非常靈活的編程語言,您可以通過多種不同的方式實現(xiàn)您的需求。但是遵循一些原則和技巧可以使您的代碼更具可讀性和效率。

1、以強類型語言的風格編寫代碼

JavaScript 是一種弱類型編程語言,其中變量在語法上可以具有不同類型的值。但是為了提高編譯性能并使您的代碼更容易被其他程序員閱讀,建議您以強類型風格編寫代碼。

1)、定義變量時應(yīng)指定數(shù)據(jù)類型

錯誤代碼:

上述代碼中的變量缺少類型信息,導(dǎo)致其他程序員難以理解代碼或 JavaScript 解釋器無法優(yōu)化。

好代碼:

2)、不要隨意改變變量的類型

錯誤代碼:

earning開始是一個整數(shù),然后變成一個字符串。如果其他人需要閱讀或修改這段代碼,他或她必然會對代碼產(chǎn)生懷疑,甚至會寫出錯誤的代碼。

同時,像 V8 這樣的引擎中的 JavaScript 代碼被轉(zhuǎn)換為字節(jié)碼然后執(zhí)行,字節(jié)碼中的數(shù)據(jù)類型是確定的。如果我們在 JavaScript 代碼中更改變量的數(shù)據(jù)類型,編譯器必須做一些額外的處理,這會降低程序的性能。

好代碼:

當你需要轉(zhuǎn)換一個值的類型時,使用一個新的變量。

3)、函數(shù)的返回類型應(yīng)該是固定的

錯誤代碼:

此函數(shù)可能返回整數(shù)或字符串。盡管這符合 JavaScript 語法,但調(diào)用函數(shù)的人很難直接使用 getPrice() 的結(jié)果進行算術(shù)運算。

好代碼:

我們可以在函數(shù)注釋中同意返回 -1 表示參數(shù)無效,這允許調(diào)用者以統(tǒng)一的方式處理函數(shù)的結(jié)果。

2、減少不必要的范圍查找

JavaScript 支持嵌套作用域和作用域鏈,這使我們能夠編寫高效的代碼。但是錯誤地使用這些語法會弄亂代碼。

1)、如果沒有必要,不要將你的代碼暴露在全局范圍內(nèi)

錯誤代碼:

首先,script標簽中的所有變量都在全局范圍內(nèi),不同的script標簽中的代碼可能是由不同的程序員開發(fā)的,可能會造成命名沖突。

其次,上面第二行代碼,在使用元素變量的時候,在全局范圍內(nèi)尋找元素變量,降低了程序的性能。

好代碼:

這樣,我們使用閉包來隱藏元素變量,這樣不會污染全局作用域,在局部作用域中查找變量也更快。

當然,如果您確定將在其他地方使用元素變量,您仍然應(yīng)該在全局范圍內(nèi)公開它。

2)、不要濫用閉包

JavaScript 通過作用域鏈查找變量,如果在當前作用域中找不到變量,JavaScript 引擎會在當前作用域的父作用域中查找,然后逐級查找全局作用域。所以閉包嵌套得越深,變量查找所需的時間就越長。

錯誤代碼:

在 process 函數(shù)內(nèi)部使用了上一級作用域變量 count,這使得 JavaScript 引擎在調(diào)用 process 函數(shù)時查找 count 變量更加耗時。

同時,如果作用域嵌套多層,process和count之間有幾十行代碼,在讀取process函數(shù)時很容易混淆count變量。

更好的方法是將計數(shù)作為參數(shù)傳遞給處理。

好代碼:

3、使用ES6特性簡化代碼

ES6 已經(jīng)存在多年,現(xiàn)在非常兼容,我們應(yīng)該積極擁抱 ES6,讓代碼更加簡潔優(yōu)雅。

1)、使用箭頭函數(shù)代替普通函數(shù)作為回調(diào)函數(shù)

如果您不需要考慮此綁定,最好使用箭頭函數(shù)而不是普通函數(shù)作為回調(diào)。

錯誤代碼:

好代碼:

2)、使用類

使用傳統(tǒng)的原型語法會將構(gòu)造函數(shù)代碼與原型方法代碼分離,無法有效組織代碼。

錯誤代碼:

使用類使代碼更簡單、更容易理解,而使用類還可以輕松實現(xiàn)繼承的靜態(tài)成員函數(shù)。

好代碼:

3)、使用模板字符串

模板字符串用反引號 () 字符而不是雙引號或單引號括起來。

錯誤代碼:

在模板字符串中,我們可以使用任何字符而不是轉(zhuǎn)義字符,如 \n。

同時,我們可以直接使用表達式 ${} 來插入變量,而不是拆分字符串并使用 + 來連接。

好代碼:

這顯然更容易閱讀。

4)、使用默認參數(shù)

在 ES5 中,如果我們想給函數(shù)的參數(shù)一個默認值,我們可以這樣寫:

在 ES6 中,我們可以用一種更簡單、更易讀的方式編寫:

5)、使用塊范圍變量

如果我們希望控制臺以 100 毫秒的間隔打印出 0、1、2、…10,反過來,有些人可能會編寫如下代碼:

for(var index = 0; index <= 10; index++){
setTimeout(() => console.log(index), 100)
}

不幸的是,上面的代碼不能滿足要求。因為 var 聲明的變量是在全局范圍內(nèi),所以當 setTimeout 回調(diào)函數(shù)執(zhí)行時,index 的值已經(jīng)變成了 11。

ES5 中的一種解決方案是使用閉包:

for(var index = 0; index <= 10; index++){
(function(archivedIndex){
setTimeout(() => console.log(archivedIndex), 100)
})(index)
}

這里我們通過閉包保存索引值,這樣每次執(zhí)行setTimeout都會找到正確的索引值。

但是上面的寫法很麻煩,很難看懂,更好的方法是使用 let 聲明塊范圍的變量。

for(let index = 0; index <= 10; index++){
setTimeout(() => console.log(index), 100)
}

只需更改三個字符即可完成要求,非常簡單、方便、易讀。

4、語法風格

1)、用三元運算符替換簡單的 if-else

一般來說,三元運算符的語法如下:

condition ? expression_1 : expression_2;

條件是一個表達式,計算結(jié)果為布爾值,真或假。如果條件為真,則三元運算符返回表達式_1,否則返回表達式_2。

錯誤代碼:

好的代碼:

2)、避免==

== 有很多特殊的機制,過多地使用 == 會使我們的代碼更難理解。我們可以顯式轉(zhuǎn)換數(shù)據(jù)類型以使代碼更易于理解。

錯誤代碼:

好的代碼:

責任編輯:龐桂玉 來源: 大前端私房菜
相關(guān)推薦

2021-11-15 10:10:20

安全零信任數(shù)據(jù)

2021-10-29 16:28:03

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2023-05-04 09:02:56

2021-09-26 13:55:33

5G切片網(wǎng)絡(luò)切片5G

2023-02-06 16:33:33

流式數(shù)據(jù)庫數(shù)據(jù)庫

2022-06-27 23:31:01

JavaScript框架開發(fā)

2022-01-12 15:50:24

JavaScript開發(fā)循環(huán)

2009-03-13 09:39:34

JavaScript函數(shù)調(diào)用規(guī)則

2023-01-28 09:52:39

2021-08-23 10:37:14

Javascript 機器學(xué)習阿里云

2022-02-08 23:16:34

元宇宙技術(shù)VR/AR

2024-06-12 13:51:12

2022-04-12 14:07:40

流程工程軟件交付敏捷團隊

2021-10-11 09:30:21

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2009-03-11 13:38:37

構(gòu)造塊ActivityIntent Rece

2023-04-11 09:39:47

2019-03-22 08:25:47

沙箱網(wǎng)絡(luò)安全惡意軟件

2024-06-26 11:08:46

2023-04-18 14:21:36

2022-02-08 15:58:29

Python編程語言
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久com | 亚洲人人舔人人 | 国产高清视频 | 99久久婷婷国产综合精品首页 | 亚洲国产成人精品在线 | 自拍 亚洲 欧美 老师 丝袜 | 国产精品欧美一区二区三区不卡 | 国产精品免费一区二区三区四区 | 亚洲视频在线一区 | 香蕉一区 | 国产ts人妖另类 | 999视频| 亚洲精品9999| www.成人.com| 亚洲国产免费 | 久久香蕉精品视频 | 久久一区二区视频 | 成人亚洲精品久久久久软件 | 天天干天天操天天看 | 久久精品免费一区二区三 | 日韩在线中文 | 91麻豆精品国产91久久久更新资源速度超快 | 盗摄精品av一区二区三区 | 丁香婷婷成人 | 国产精品一区在线观看 | 国产成人一区二区三区电影 | 国产高清精品一区二区三区 | 一级黄色淫片 | www国产成人免费观看视频,深夜成人网 | 97久久久 | 亚洲高清在线观看 | 99免费看| 亚洲天堂中文字幕 | 亚洲欧洲日韩 | 久久久久久久久99精品 | 蜜桃av鲁一鲁一鲁一鲁 | 91精品一区| 国产欧美精品 | 四虎影音 | 国内精品久久久久久影视8 最新黄色在线观看 | 精品国产一区二区三区久久狼黑人 |