成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

寫一手漂亮的js

BetaRabbit / 1268人閱讀

摘要:介紹看了很多,卻沒(méi)有人教我怎么去寫一手漂亮的代碼,今天我來(lái)講講我自己寫的經(jīng)驗(yàn)不要在代碼中留大段注釋掉的代碼留給去管理,不然你要干嘛適當(dāng)?shù)負(fù)Q行適當(dāng)?shù)奶砑幼⑨?,但不要瘋狂的添加注釋?duì)一段代碼或者一行特別需要注意的代碼注釋不要瘋狂的注釋,太啰嗦,

介紹

看了很多best practice,卻沒(méi)有人教我怎么去寫一手漂亮的js代碼,今天我來(lái)講講我自己寫js的經(jīng)驗(yàn)

不要在代碼中留大段注釋掉的代碼

留給git去管理,不然你要git干嘛

// bad

// function add() {
//   const a = b + c
//   return a
// }

function add() {
  return a + 1000
}

// good
function add() {
  return a + 1000
}
適當(dāng)?shù)負(fù)Q行
// bad
function a() {
  const {
    state_a,
    state_b,
    state_c
  } = this.state
  this.setState({state_a: state_a * 2})
  return "done"
}

// good
function a() {
  const {
    state_a,
    state_b,
    state_c
  } = this.state

  this.setState({state_a: state_a * 2})

  return "done"
}
適當(dāng)?shù)奶砑幼⑨?,但不要瘋狂的添加注?/b>

對(duì)一段代碼或者一行特別需要注意的代碼注釋

不要瘋狂的注釋,太啰嗦,漂亮的代碼自己會(huì)說(shuō)話

// bad
const a = "a" // 這是a
const b = "b" // 這是b
const c = "c" // 這是c

// good
/**
 * 申明變量
 */
 const a = "a"
 const b = "b"
 const c = "c"
將類似行為、命名的代碼歸類在一起
// bad
function handleClick(arr) {
  const a = 1

  arr.map(e => e + a)

  const b = 2

  return arr.length + b
}

// good
function handleClick(arr) {
  const a = 1
  const b = 2

  arr.map(e => e + a)

  return arr.length + b
}
在不破壞語(yǔ)義性的情況下,"能省則省"

牢記js中函數(shù)是一等公民

但是,如果省略到影響可讀性了,就是失敗的

在可讀性和簡(jiǎn)潔性至今必須選一個(gè)的話,永遠(yuǎn)先選可讀性

function add(a) {
  return a + 1
}

function doSomething() {

}

// bad
arr.map(a => {
  return add(a)
})

setTimeout(() => {
  doSomething()
}, 1000)

// good
arr.map(add)

setTimeout(doSomething, 1000)

箭頭函數(shù)

// bad
const a = (v) => {
  return v + 1
}

// good
const a = v => v + 1


// bad
const b = (v, i) => {
  return {
    v,
    i
  }
}

// good
const b = (v, i) => ({v, i})


// bad
const c = () => {
  return (dispatch) => {
    // doSomething
  }
}

// good
const c = () => dispatch => {
  // doSomething
}

提前對(duì)對(duì)象取值(寫react的同學(xué)一定懂)

// bad
const a = this.props.prop_a + this.props.prop_b

this.props.fun()

// good
const {
  prop_a,
  prop_b,
  fun
} = this.props

const a = prop_a + prop_b

fun()
合理使用各種表達(dá)式
// bad
if (cb) {
  cb()
}

// good
cb && cb()


// bad
if (a) {
  return b
} else {
  return c
}

// good
return a ? b : c


// bad
if (a) {
  c = a
} else {
  c = "default"
}

// good
c = a || "default"
鏈?zhǔn)秸{(diào)用寫法
// bad
fetch(url).then(res => {
  return res.json()
}).then(() => {
  // doSomething
}).catch(e => {

})

// good
fetch(url)
  .then(res => {
    return res.json()
  })
  .then(() => {
    // doSomething
  })
  .catch(e => {

  })
保持代碼是縱向發(fā)展的

發(fā)現(xiàn)那些在整個(gè)文件中特別"突出"的代碼時(shí),應(yīng)該考慮對(duì)他們做換行處理了

// bad
return handleClick(type, key, ref, self, source, props)

// good
return handleClick(
  type,
  key,
  ref,
  self,
  source,
  props
)

// bad
const a = this.props.prop_a === "hello" ? world
: null // good const a = this.props.prop_a === "hello" ? world
: null 總結(jié)

個(gè)人經(jīng)驗(yàn),如有錯(cuò)誤,還望指正

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/90133.html

相關(guān)文章

  • 一手漂亮js(react篇)

    摘要:哈哈,又是我,廢話不多說(shuō),直接看代碼個(gè)人原則既然是組件化的,那么相同的代碼,我不會(huì)寫第二遍不在結(jié)構(gòu)中夾雜太多邏輯遵守上一篇寫一手漂亮的的規(guī)則可讀性在我心里永遠(yuǎn)大于性能追求極致性能場(chǎng)景除外對(duì)生命周期函數(shù)排序傳遞多個(gè)時(shí)注意換行利用對(duì)象展開(kāi)符傳遞 哈哈,又是我,廢話不多說(shuō),直接看代碼 個(gè)人原則 既然react是組件化的,那么相同的代碼,我不會(huì)寫第二遍 不在dom結(jié)構(gòu)中夾雜太多js邏輯 遵守...

    ad6623 評(píng)論0 收藏0
  • 碼如其人,小老弟,你能一手漂亮Python函數(shù)嗎

    摘要:返回值函數(shù)可以且應(yīng)該被視為一個(gè)獨(dú)立的小程序。以下的函數(shù)是冪等的無(wú)論何時(shí)調(diào)用,其返回值都是。 與多數(shù)現(xiàn)代編程語(yǔ)言一樣,在 Python 中,函數(shù)是抽象和封裝的基本方法之一。你在開(kāi)發(fā)階段或許已經(jīng)寫過(guò)數(shù)百個(gè)函數(shù),但并非每個(gè)函數(shù)都生而平等。寫出「糟糕的」函數(shù)會(huì)直接影響代碼的可讀性和可維護(hù)性。那么,什么樣的函數(shù)是「糟糕的」函數(shù)呢?更重要的是,要怎么寫出「好的」函數(shù)呢? 簡(jiǎn)單回顧 數(shù)學(xué)中充滿了函數(shù)...

    goji 評(píng)論0 收藏0
  • 優(yōu)秀博文收藏(不定期更新)

    摘要:我的書簽我的書簽謹(jǐn)慎導(dǎo)入,小心覆蓋工具類版本管理快速切換源配置教程指南可視化工具前端工具集前端助手網(wǎng)絡(luò)封包截取工具格式化工具標(biāo)注工具模擬請(qǐng)求類深入淺出布局你所不知道的動(dòng)畫技巧與細(xì)節(jié)常用代碼黑魔法小技巧,讓你少寫不必要的,代碼更優(yōu)雅一勞永 我的書簽 我的書簽(謹(jǐn)慎導(dǎo)入,小心覆蓋) 工具類 nvm: node版本管理 nrm: 快速切換npm源 shell: zsh+on-my-zsh配...

    sunsmell 評(píng)論0 收藏0
  • 優(yōu)秀博文收藏(不定期更新)

    摘要:我的書簽我的書簽謹(jǐn)慎導(dǎo)入,小心覆蓋工具類版本管理快速切換源配置教程指南可視化工具前端工具集前端助手網(wǎng)絡(luò)封包截取工具格式化工具標(biāo)注工具模擬請(qǐng)求類深入淺出布局你所不知道的動(dòng)畫技巧與細(xì)節(jié)常用代碼黑魔法小技巧,讓你少寫不必要的,代碼更優(yōu)雅一勞永 我的書簽 我的書簽(謹(jǐn)慎導(dǎo)入,小心覆蓋) 工具類 nvm: node版本管理 nrm: 快速切換npm源 shell: zsh+on-my-zsh配...

    zhangfaliang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<