想遵循的變數命名方式

之前有寫過一篇 變數的命名哲學,不過寫的不是很完整。最近剛好看到這這篇 文章,覺得寫得還不錯,所以想參照它的內容來打造自己的 coding style。

基本規則

這裡直接把以前寫的貼過來:

小寫駝峰式(Camel case)

maxNumber 小寫開頭,單字連接的部分變成大小。因為很像駱駝的背,所以被稱為駝峰式

大寫駝峰式(Pascal case)

MaxNumber,就是開頭變成大寫這樣

蛇型式(Snake case)

max_value,用底線隔開單字,底線像蛇所以才叫 snake

串燒式(Kebab case)

max-value,用 - 隔開單字,kebab 是烤肉串的意思(因為這種寫法很像串燒)

接下來會根據 變數、常數、函數、類(class)、類成員 來分別解釋一下該用哪種命名格式跟建議比較恰當。

變數

  • 命名格式:小寫駝峰式
  • 命名建議:以名詞 來開頭

另外最好取的貼切一點,像 length、count 很明顯代表「數字」,而 name、title 就表示「字串」。

example:

1
2
3
4
5
6
// 正確的寫法
let maxCount = 10
let tableTitle = 'LoginTable'
// 不正確的寫法
let setCount = 10
let getTitle = 'LoginTable'

常數

  • 命名格式:全部都大寫,用下底線分隔單字

example:

1
2
const MAX_COUNT = 10
const URL = 'http://www.foreverz.com'

函數

  • 命名格式:小寫駝峰式
  • 命名建議:以動詞 來開頭

附上一些常見的約定俗成:

動詞 意思 回傳值
can 判斷是否能執行某個動作 true:可以,false:不可以
has 判斷是否包含某個值 true:有包含,false:沒有包含
is 判斷是否為某個值 true:有,false:沒有
get 取得某個值 回傳取得的值
set 設定某個值 沒有回傳值或回傳是否成功
load 讀取資料 沒有回傳值或回傳是否成功失敗

example:

1
2
3
4
5
6
7
8
// 是否可以閱讀
function canRead() {
return true
}
// 取得名稱
function getName() {
return 'PeaNu'
}

類(class)

  • 命名格式:大寫駝峰式
  • 命名建議:以名詞 來開頭

example:

1
2
3
4
5
6
7
class Person {
public name: string
constructor(name) {
this.name = name
}
}
const person = new Person('mevyn')

類成員

  • 公開屬性和方法:跟變數和函數的命名相同。
  • 私有屬性和方法:前綴用下底線來表示,後面就一般作法。

example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Person {
// 私有屬性
private _name: string
constructor() { }
// 公開方法
getName() {
return this._name
}
// 公開方法
setName() {
return this._name = name
}
}
const person = new Person()
person.setName('PeaNu')
person.getName() // ->PeaNu

註解

寫註解其實也能是一種 coding style。

命名建議:

1
2
3
// 用來顯示單行註解
// -> 用來顯示表達式的結果
// > 用來顯示 console 的輸出結果

example:

1
2
3
4
function test() {
console.log('Hello') // > Hello
return 3 + 2 // -> 5
}

多行註解的建議:

1
2
3
4
5
/*
* 第一行註解
* 第二行註解
* 第三行註解
*/
mentor-program-day27 在做 JSON.parse 之前
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×