本篇內(nèi)容主要講解“有哪些編寫(xiě)短小精煉的JS代碼小技巧”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“有哪些編寫(xiě)短小精煉的JS代碼小技巧”吧!
創(chuàng)新互聯(lián)公司10多年成都企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站建設(shè)及推廣,對(duì)成都除甲醛等多個(gè)行業(yè)擁有多年的網(wǎng)站制作經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
Javascript 里的邏輯運(yùn)算符與(&&)
可以產(chǎn)生短路,例如
console.log(true && 0 && 2); // 0 console.log(true && 'test' && 2) // 2
即代碼從左往右,如果遇到undefined
,null
,0
等等會(huì)被轉(zhuǎn)化為false
的值時(shí)就不再繼續(xù)運(yùn)行。
x == 0 && foo() // 等價(jià)于 if( x == 0 ){ foo() }
假設(shè)有一個(gè)對(duì)象
const student = { name : { firstName : 'Joe' } }
我們希望firstname存在的情況下做一些事情, 我們不得不一層一層檢查
if(student && student.name && student.name.firstName){ console.log('student First name exists') }
采用鏈判斷運(yùn)算符會(huì)在某一層取不到值的時(shí)候停止并返回undefined
if(student?.name?.firstName){ console.log('student First name exists') }
我們有時(shí)候會(huì)使用三元運(yùn)算來(lái)簡(jiǎn)化if...else...
或者返回一個(gè)默認(rèn)值
const foo = () => { return student.name?.firstName ? student.name.firstName : 'firstName do not exist' } console.log(foo())
這種情況,我們可以通過(guò)空值合并進(jìn)一步簡(jiǎn)化代碼
const foo = () => { return student.name?.firstName ?? 'firstName do not exist' } console.log(foo())
很像或||
運(yùn)算符,但??
只對(duì)undefined
和 null
起作用,可以避免值是0麻煩
例如
const foo = () => { if(x<1) { return 'x is less than 1' } else { if(x > 1){ return 'x is greater than 1' } else { return 'x is equal to 1' } } }
通過(guò)刪除 else 條件可以使 if else 嵌套變得不那么復(fù)雜,因?yàn)?return 語(yǔ)句將停止代碼執(zhí)行并返回函數(shù)
const foo = () => { if(x<1){ return 'less than 1' } if(x>1){ return 'x is greater than 1' } return 'x is equal to 1' }
好的代碼不一定要追求盡可能的短,有時(shí)候過(guò)于精簡(jiǎn)的代碼會(huì)使debug的過(guò)程更加麻煩,所以可讀性才是最重要的,特別是在多人協(xié)作的情況下。
到此,相信大家對(duì)“有哪些編寫(xiě)短小精煉的JS代碼小技巧”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!