Anthony的博客

要做编程里最会摄影的,摄影里最会编程的。

0%

一些代码简洁方法

一些代码简洁方法

1.通过条件判断给变量赋值布尔值

1
2
3
4
5
6
7
8
9
// bad
if (a === 'a') {
b = true
} else {
b = false
}

// good
b = a === 'a'

2.在if中判断数组长度不为零 和判断长度为零

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// bad
if (arr.length !== 0) {
// todo
}

// good
if (arr.length) {
// todo
}

// bad
if (arr.length === 0) {
// todo
}

// good
if (!arr.length) {
// todo
}

3.一般的if判断使用三元表达式

1
2
3
4
5
6
7
8
9
// bad
if (a === 'a') {
b = a
} else {
b = c
}

// good
b = a === 'a' ? a : c

4.使用includes简化if判断

1
2
3
4
5
6
7
8
9
10
// bad
if (a === 1 || a === 2 || a === 3 || a === 4) {
// todo
}

// good
let arr = [1, 2, 3, 4]
if (arr.includes(a)) {
// todo
}

5.一些数组使用方法可以参考我的数组文章 https://anthony-ghy.github.io/archives/253P6DE.html

6.快速获取对象的键值对

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
let obj = {
a: 1,
b: 2
}
// bad
let values = []
for (key in obj) {
values.push(obj[key])
}

// good
let values = Object.values(obj) // [1, 2]


let obj = {
a: 1,
b: 2
}
// bad
let keys = []
for (value in obj) {
keys.push(value)
}

// good
let keys = Object.keys(obj) // ['a', 'b']

7.关于解构赋值的方法可以参考https://anthony-ghy.github.io/archives/SHB3RK.html

8.||短路符设置默认值

1
2
3
4
5
6
let person = {
name: '张三',
age: 38
}

let name = person.name || '佚名'

9.&&短路符判断依赖的键是否存在防止报错’xxx of undfined’

1
2
3
4
5
6
7
8
9
let person = {
name: '张三',
age: 38,
children: {
name: '张小三'
}
}

let childrenName = person.children && person.childre.name

10.函数参数校验

1
2
3
4
5
6
7
8
9
10
11
12
// bad
let findStudentByAge = (arr, age) => {
if (!age) throw new Error('参数不能为空')
return arr.filter(num => num === age)
}

// good
let checkoutType = () => {
throw new Error('参数不能为空')
}
let findStudentByAge = (arr, age = checkoutType()) =>
arr.filter(num => num === age)
-------------本文结束感谢您的阅读-------------