JS 4個(gè)超級(jí)實(shí)用的小技巧 提升開(kāi)發(fā)效率
1、短路判斷
當(dāng)只需要簡(jiǎn)單的if條件時(shí),可使用此方法
let x = 0;
let foo = () => console.log('執(zhí)行了');
if(x === 0){
foo()
}
通過(guò)使用&&運(yùn)算符來(lái)實(shí)現(xiàn)同樣的if功能,如果&&之前的條件為false,則&&之后的代碼將不會(huì)執(zhí)行。
let x = 0;
let foo = () => console.log('執(zhí)行了');
x === 0 && foo()
還可增加更多的if條件,不過(guò)這也會(huì)增加語(yǔ)句的復(fù)雜性,不建議超過(guò)2個(gè)以上條件。
let x = 0;
let y = 0;
let foo = () => console.log('執(zhí)行了');
x === 0 && y === 0 && foo()
2、可選鏈操作符 ( ? )
我們經(jīng)常會(huì)判斷JS對(duì)象中是否存在某個(gè)key,因?yàn)橛袝r(shí)不確定后臺(tái)API返回的數(shù)據(jù)是否是正確的。
user對(duì)象中包含一個(gè)屬性name的對(duì)象,name對(duì)象有一個(gè)屬性firstName,使用user.name.firstName直接進(jìn)行判斷的話,如果name屬性不存在的話就會(huì)報(bào)錯(cuò),所以在判斷之前還需要判斷user.name是否存在,需要嵌套兩層if判斷。
let user = {
name : {
firstName : '傲夫靠斯'
}
}
if(user.name){
if(user.name.firstName){
console.log('user對(duì)象 包含 firstName 字段')
}
}
這時(shí)我們可以使用?操作符進(jìn)行簡(jiǎn)化操作,如果user.name不存在,也將返回false,所以直接使用一層判斷
let user = {
name : {
firstName : '傲夫靠斯'
}
}
if(user.name?.firstName){
console.log('user對(duì)象 包含 firstName 字段')
}
3、空值合并操作符 ( ?? )
與if/else相比來(lái)說(shuō),三元運(yùn)算符更加簡(jiǎn)短。如果邏輯簡(jiǎn)單,使用起來(lái)很方便。
例如:
let user = {
name : {
firstName : '傲夫靠斯'
}
}
let foo = () => {
return user.name?.firstName ?
user.name.firstName :
'firstName 不存在'
}
console.log(foo())
首先使用?運(yùn)算符來(lái)判讀是否存在,存在即返回,不存在則返回false,進(jìn)入后面的邏輯
使用??運(yùn)算法使代碼更加精簡(jiǎn)
let user = {
name : {
firstName : '傲夫靠斯'
}
}
let foo = () => {
return user.name?.firstName ??
'firstName 不存在'
}
console.log(foo())
4、return終止函數(shù)
下面函數(shù)判斷x的值,使用大量if else嵌套
let x = 1;
let foo = () => {
if(x < 1){
return 'x 小于 1'
} else {
if(x > 1){
return 'x 大于 1'
}else{
return 'x 等于 1'
}
}
}
console.log(foo())
這種if else嵌套可以刪除else條件來(lái)簡(jiǎn)化代碼,因?yàn)?code>return語(yǔ)句將終止代碼執(zhí)行并返回函數(shù)。
let x = 1;
let foo = () => {
if(x < 1){
return 'x 小于 1'
}
if(x > 1){
return 'x 大于 '
}
return 'x 等于 1'
}
console.log(foo())
到此這篇關(guān)于JS 4個(gè)超級(jí)實(shí)用的小技巧 提升開(kāi)發(fā)效率的文章就介紹到這了,更多相關(guān)4個(gè)實(shí)用JS小技巧 提升開(kāi)發(fā)效率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序開(kāi)發(fā)一鍵登錄 獲取session_key和openid實(shí)例
這篇文章主要介紹了微信小程序開(kāi)發(fā)一鍵登錄 獲取session_key和openid實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-11-11
JavaScript知識(shí):構(gòu)造函數(shù)也是函數(shù)
構(gòu)造函數(shù)就是初始化一個(gè)實(shí)例對(duì)象,對(duì)象的prototype屬性是繼承一個(gè)實(shí)例對(duì)象。本文給大家分享javascript構(gòu)造函數(shù)詳解,對(duì)js構(gòu)造函數(shù)相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2021-08-08
微信小程序 scroll-view實(shí)現(xiàn)上拉加載與下拉刷新的實(shí)例
這篇文章主要介紹了微信小程序 scroll-view實(shí)現(xiàn)上拉加載與下拉刷新的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-01-01
4個(gè)頂級(jí)開(kāi)源JavaScript圖表庫(kù)
今天小編就為大家分享一篇關(guān)于4個(gè)頂級(jí)開(kāi)源JavaScript圖表庫(kù),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-09-09
微信小程序之頁(yè)面跳轉(zhuǎn)和參數(shù)傳遞的實(shí)現(xiàn)
這篇文章主要介紹了微信小程序之頁(yè)面跳轉(zhuǎn)和參數(shù)傳遞的實(shí)現(xiàn)的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09
前端取消請(qǐng)求及取消重復(fù)請(qǐng)求方式
這篇文章主要為大家介紹了前端取消請(qǐng)求及取消重復(fù)請(qǐng)求方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
Three.js引用和環(huán)境搭建過(guò)程詳解
這篇文章主要為大家介紹了Three.js引用和環(huán)境搭建過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
微信小程序 數(shù)據(jù)遍歷的實(shí)現(xiàn)
這篇文章主要介紹了微信小程序 數(shù)據(jù)遍歷的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-04-04

