首頁 > web前端 > js教程 > 主體

4個編寫短小精煉JS程式碼的小技巧(分享)

青灯夜游
發布: 2021-10-28 10:13:29
轉載
1957 人瀏覽過

如何讓寫的JS程式碼更短?以下這篇文章就來跟大家分享4個寫短小精煉JS程式碼的小技巧,希望對大家有幫助!

4個編寫短小精煉JS程式碼的小技巧(分享)

短路

Javascript 裡的邏輯運算子與(&&)可以產生短路,例如

console.log(true && 0 && 2); // 0
console.log(true && 'test' && 2) // 2
登入後複製

即程式碼從左往右,如果遇到undefinednull0等等會轉換成false的值時就不再繼續運作。

x == 0 && foo()
// 等价于
if( x == 0 ){
  foo()
}
登入後複製

鏈判斷運算子'?'

假設有一個物件

const student = {
    name : {
      firstName : 'Joe'
  }
}
登入後複製

我們希望firstname存在的情況下做一些事情, 我們不得不一層一層檢查

if(student && student.name && student.name.firstName){
    console.log('student First name exists')
}
登入後複製

採用鏈判斷運算子會在某一層取不到值的時候停止並傳回undefined

if(student?.name?.firstName){
    console.log('student First name exists')
}
登入後複製

空值合併運算子'? ?'

我們有時候會使用三元運算來簡化if...else... 或傳回一個預設值

const foo = () => {
    return student.name?.firstName 
        ? student.name.firstName 
        : 'firstName do not exist'
}
console.log(foo())
登入後複製

這種情況,我們可以透過空值合併進一步簡化程式碼

const foo = () => {
    return student.name?.firstName ?? 'firstName do not exist'
}
console.log(foo())
登入後複製

很像或||運算符,但??只對undefinednull起作用,可以避免值是0麻煩

#盡量避免if else 巢狀

例如

const foo = () => {
    if(x<1) {
      return &#39;x is less than 1&#39;
    } else {
      if(x > 1){
          return &#39;x is greater than 1&#39;
      } else {
          return &#39;x is equal to 1&#39;
      }
  }
}
登入後複製

透過刪除else 條件可以讓if else 巢狀變得不那麼複雜,因為return 語句將停止程式碼執行並傳回函數

const foo = () => {
    if(x<1){
        return &#39;less than 1&#39;
    }
    if(x>1){
        return &#39;x is greater than 1&#39;
    }
    return &#39;x is equal to 1&#39;
}
登入後複製

好的程式碼不一定要追求盡可能的短,有時過於精簡的程式碼會讓debug的過程更加麻煩,所以可讀性才是最重要的,特別是在多人協作的情況下。

更多程式相關知識,請造訪:程式設計入門! !

以上是4個編寫短小精煉JS程式碼的小技巧(分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!