JavaScript 编写技巧(持续更新...)
为了更加优雅、轻松易读的JavaScript代码,有一些小细节的处理是必不可少的。
1. || 和 && 逻辑运算符
在JavaScript中,||
和 &&
是常用的逻辑运算符,但是在使用的时候,需要注意一些细节。
||
运算符的作用是:两个表达式中只要有一个为 true
,则返回 true
,否则返回 false
。
1 || 2 // 1- 1 || 2 // -10 || 2 // 2'' || 2 // 2undefined || 2 // 2null || 2 // 2
&&
运算符的作用是:两个表达式中只要有一个为 false
,则返回 false
,否则返回 true
。
1 && 2 // 2- 1 && 2 // 20 && 2 // 0'' && 2 // ''undefined && 2 // undefinednull && 2 // null
注意点:0、空字符串、Undefined 和 Null 都会被转换为 false
处理,其他的都会被转换为 true
。
2. ?? 空值合并运算符
??
运算符的作用是:当左侧的表达式为 Null 或 Undefined 时,返回右侧的表达式,否则返回左侧的表达式。
注意点:??
运算符只会判断左侧的表达式是否为 Null 或 Undefined,其他的都不会判断(包括 0 和 空字符串)。
3. 优化 If、Case 语句代码
在 JavaScript 中,If
和 Case
语句是常用的条件语句。
但是在使用的时候,很可能会出现一长串的 If
或 Case
语句,这样的代码不仅不美观,而且不易读,所以我们需要对这样的代码进行优化。
const key = 1if (key === 1) { console.log('key is 1')} else if (key === 2) { console.log('key is 2')} else if (key === 3) { console.log('key is 3')} else { console.log('key is other value')}
可以利用对象Object属性的唯一性,将上面的代码优化为:
const oneKey = () => { console.log('key is 1')}const twoKey = () => { console.log('key is 2')}const threeKey = () => { console.log('key is 3')}const otherKey = () => { console.log('key is other value')}// 利用对象属性名的唯一性来绑定对应的自定义处理函数const keyList = { 1: oneKey, 2: twoKey, 3: threeKey,}const key = 1keyList[key] ? keyList[key]() : otherKey()