国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

寫一手漂亮的js

BetaRabbit / 1208人閱讀

摘要:介紹看了很多,卻沒有人教我怎么去寫一手漂亮的代碼,今天我來講講我自己寫的經驗不要在代碼中留大段注釋掉的代碼留給去管理,不然你要干嘛適當地換行適當的添加注釋,但不要瘋狂的添加注釋對一段代碼或者一行特別需要注意的代碼注釋不要瘋狂的注釋,太啰嗦,

介紹

看了很多best practice,卻沒有人教我怎么去寫一手漂亮的js代碼,今天我來講講我自己寫js的經驗

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

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

// bad

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

function add() {
  return a + 1000
}

// good
function add() {
  return a + 1000
}
適當地換行
// 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"
}
適當的添加注釋,但不要瘋狂的添加注釋

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

不要瘋狂的注釋,太啰嗦,漂亮的代碼自己會說話

// 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
}
在不破壞語義性的情況下,"能省則省"

牢記js中函數是一等公民

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

在可讀性和簡潔性至今必須選一個的話,永遠先選可讀性

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)

箭頭函數

// 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
}

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

// 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()
合理使用各種表達式
// 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"
鏈式調用寫法
// bad
fetch(url).then(res => {
  return res.json()
}).then(() => {
  // doSomething
}).catch(e => {

})

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

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

發現那些在整個文件中特別"突出"的代碼時,應該考慮對他們做換行處理了

// 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 總結

個人經驗,如有錯誤,還望指正

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90133.html

相關文章

  • 一手漂亮js(react篇)

    摘要:哈哈,又是我,廢話不多說,直接看代碼個人原則既然是組件化的,那么相同的代碼,我不會寫第二遍不在結構中夾雜太多邏輯遵守上一篇寫一手漂亮的的規則可讀性在我心里永遠大于性能追求極致性能場景除外對生命周期函數排序傳遞多個時注意換行利用對象展開符傳遞 哈哈,又是我,廢話不多說,直接看代碼 個人原則 既然react是組件化的,那么相同的代碼,我不會寫第二遍 不在dom結構中夾雜太多js邏輯 遵守...

    ad6623 評論0 收藏0
  • 碼如其人,小老弟,你能一手漂亮Python函數嗎

    摘要:返回值函數可以且應該被視為一個獨立的小程序。以下的函數是冪等的無論何時調用,其返回值都是。 與多數現代編程語言一樣,在 Python 中,函數是抽象和封裝的基本方法之一。你在開發階段或許已經寫過數百個函數,但并非每個函數都生而平等。寫出「糟糕的」函數會直接影響代碼的可讀性和可維護性。那么,什么樣的函數是「糟糕的」函數呢?更重要的是,要怎么寫出「好的」函數呢? 簡單回顧 數學中充滿了函數...

    goji 評論0 收藏0
  • 優秀博文收藏(不定期更新)

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

    sunsmell 評論0 收藏0
  • 優秀博文收藏(不定期更新)

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

    zhangfaliang 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<