js技巧
数组去重
Set对象类型是ES6引入的,配合展开操作符...一起,可以创建一个去重了的新数组。
const arr = [1,2,3,4,4,3,2,1];
const newArr = [...new Set(arr)];
console.log(arr); // 1 2 3 4
这个方法适用于包含基本类型的数组。
与或运算
使用&&将返回第一个条件为假的值。如果每个操作数的计算值都为true,则返回最后一个计算过得表达式。
let one = 1,two = 2,three = 3;
console.log(one && two && three); // Result: 3
console.log(0 && null); // Result: 0
使用||将返回第一个条件为真的值。如果每个操作数的计算结果都为false,则返回最后一个计算过的表达式。
let one = 1,two = 2,three = 3;
console.log(one || two || three); // Result: 1
console.log(0 || null); // Result: null
1、想要返回一个变量的长度,但是不知道变量的类型。使用if-else语句检测foo可接受的类型,但是代码过于冗长。
return (foo || []).length
如果变量foo是true,它将被返回。否则,返回的空数组的长度0;
2、访问嵌套对象属性的时候,不知道对象或者其中一个子属性是否存在。
在this.state中访问一个名为data的属性,但是在程序响应成功之前data是未定义的。此时this.state.data可能就会报错。
可以先判断是否定义了,再执行程序。
if(this.state.data){
return this.state.data;
} else {
return 'undefined data'
}
return ( this.state.data || 'undefined data' );
#### 转换为布尔值 `!!`
#### 转换为数字 `+`

浙公网安备 33010602011771号