自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五個(gè)JavaScript代碼優(yōu)化優(yōu)秀實(shí)踐

開發(fā) 前端
在JavaScript中,如果類提升使用就需要在調(diào)用類之前聲明它。這一點(diǎn)與函數(shù)不一樣。在使用JavaScript中的類時(shí),應(yīng)該理解并遵循這一基本原則。

1.規(guī)范變量和函數(shù)的命名

首先,應(yīng)該制定變量、函數(shù)和其他代碼結(jié)構(gòu)的命名約定。這不僅與代碼可讀性有關(guān),而且還極大地影響代碼的調(diào)試效率。

建議對(duì)變量和函數(shù)使用駝峰大小寫(例如,myVariableName)和類的Pascal大小寫(例如,MyClassName)。


// ? 隨意的變量名:
let a = 'John';
let fn = () => console.log('Hello');

// ? 駝峰變量名:
let firstName = 'John';
let sayHello = () => console.log('Hello');

2.使用速記技術(shù)注意事項(xiàng)

雖然速記技術(shù)使我們編寫代碼更快、更整潔,但一定要注意正確使用,因?yàn)樗鼈兏喍蹋枰_發(fā)者清晰理解邏輯,否則可能會(huì)產(chǎn)生意想不到的結(jié)果。為了避免這種不可預(yù)見的結(jié)果,有必要查閱文檔,研究相關(guān)的JavaScript代碼示例,并進(jìn)行完整測(cè)試。

// ? 傳統(tǒng)的函數(shù)定義:
function square1 (num) {
  return num * num
}
// ? 使用速記技術(shù):
const square2 = num => num * num

// ? 大代碼段:
let x

if (y) {
  x = y
} else {
  x = 'default'
}

// ? 更簡潔的代碼:
let x = y || 'default'

3.遵循SoC原則

為了代碼的簡潔,建議避免使用style直接修改樣式。這個(gè)原則被稱為關(guān)注點(diǎn)分離(SoC),建議使用classList API添加或刪除類,同時(shí)使用CSS定義樣式規(guī)則。    

通過遵循這種方法,CSS負(fù)責(zé)樣式化任務(wù),而JavaScript專注于處理應(yīng)用程序中的其他功能。SoC的概念其實(shí)已經(jīng)擴(kuò)展到JavaScript之外的場(chǎng)合,并被作為一種最佳實(shí)踐來隔離功能,防止不同技術(shù)之間的混合使用。

在javascript處理CSS相關(guān)的任務(wù)時(shí),應(yīng)該避免Style直接修改樣式模式。 

// ? 避免操作styling:
let element = document.getElementById('my-element')
element.style.color = 'red'

// ? 使用classList操作樣式:
let element = document.getElementById('my-element')
element.classList.add('my-class')

4.理解類的提升

在JavaScript中,如果類提升使用就需要在調(diào)用類之前聲明它。這一點(diǎn)與函數(shù)不一樣。在使用JavaScript中的類時(shí),應(yīng)該理解并遵循這一基本原則。

// ? 錯(cuò)誤:定義類之前就調(diào)用類:
const hat = new Hat('Red', 1000)
hat.show()
class Hat {
  constructor (color, price) {
    this.color = color
    this.price = price
  }
  show () {
    console.log(`This ${this.color} hat costs $${this.price}`)
  }
}

// ? 正確:在定義之后調(diào)用類:
class Hat {
  constructor (color, price) {
    this.color = color
    this.price = price
  }
  show () {
    console.log(`This ${this.color} hat costs $${this.price}`)
  }
}

const hat = new Hat('Red', 1000)

5.避免代碼中的過度嵌套

過度嵌套代碼既不專業(yè)又導(dǎo)致代碼非?;靵y。例如在try-catch塊中進(jìn)行if-else語句,if-else語句中又嵌套一個(gè)for循環(huán),等等。結(jié)果,代碼變得混亂,使得理解或錯(cuò)誤定位變得十分困難。調(diào)試這樣的代碼猶如小貓解毛線。為避免過多的嵌套,實(shí)現(xiàn)更干凈、更有組織的代碼結(jié)構(gòu)至關(guān)重要。


// ? 過度嵌套
function checkNumber (num) {
  if (num > 0) {
    console.log('Number is positive.')
  } else {
    if (num < 0) {
      console.log('Number is negative.')
    } else {
      console.log('Number is zero.')
    }
  }
}

// ? 使用return 替代else
function checkNumber (num) {
  if (num > 0) {
    console.log('Number is positive.')
    return
  }

  if (num < 0) {
    console.log('Number is negative.')
    return
  }

  console.log('Number is zero.')
}
責(zé)任編輯:趙寧寧 來源: andflow
相關(guān)推薦

2021-05-26 08:50:37

JavaScript代碼重構(gòu)函數(shù)

2023-07-03 12:09:38

云日志云服務(wù)

2021-12-04 23:10:02

Java代碼開發(fā)

2022-10-10 14:53:00

云安全云計(jì)算云平臺(tái)

2021-06-25 14:50:21

DevSecOps安全 DevOps

2023-04-14 08:10:59

asyncawait

2020-02-25 20:55:20

JavaScript開發(fā) 技巧

2022-11-28 23:48:06

JavaScript編程語言技巧

2022-07-03 17:10:15

JavaScript編程語言開發(fā)

2023-05-16 15:27:31

2024-01-04 16:21:37

數(shù)字孿生供應(yīng)鏈IT價(jià)值

2022-03-05 23:08:14

開源軟件開發(fā)技術(shù)

2024-06-12 13:57:00

2024-07-05 13:59:26

2020-02-25 15:27:37

JavaScriptTypeScript瀏覽器

2022-01-07 08:00:00

Node.js開發(fā)Web

2024-06-14 15:18:39

2022-05-13 14:28:03

云原生權(quán)限云原生

2023-04-20 11:59:03

開源PatternFly

2021-05-31 09:48:24

網(wǎng)絡(luò)釣魚滲透測(cè)試網(wǎng)絡(luò)安全
點(diǎn)贊
收藏

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