记录JS一些比较实用便捷的小技巧(二)

如果跟(一)里有重复 = =就当巩固记忆了

1.数组去重

let arr = [1,3,4,4,6];
let uniqueArr = [...new Set(arr)];//[1,3,4,6]

2.快捷的浅拷贝

let arr = [1,3,4,4,6];
let copyArr = [...arr];

let obj = {name:'chou',title:'wonderful'};
let copyObj = {...obj}

3.短路求值(Short-Circuit Evaluation)
逻辑与(&&)必须两边都true,意味着两边都会进行计算:
(与(&&)运算符将会返回第一个 false/‘falsy’的值。当所有的操作数都是 true时,将返回最后一个表达式的结果。)

let one = 100, two = 200, three = 3;
let result = one>10 && two>100 && three
console.log(result); // 3
console.log( one>100 && two>100 && three)//false

逻辑或(||)一旦左边为true,则不会再进行计算下去:
(或(||)运算符将返回第一个 true/‘truthy’的值。当所有的操作数都是 false时,将返回最后一个表达式的结果。)

let one = 100, two = 200, three = 3;
console.log(one || two || three); // 100
console.log(0 || null); // Result: null
let result = one>100 || two>200 || three
console.log(result);//3
console.log( one>100 || two>100 || three)//true
function a(){console.log(1);return 'chouchou'}
function b(){console.log(2)}
a()&&b();//当左边一个方法有返回值时,会继续执行b()
a()||b();//当左边一个方法有返回值时,则不会再继续执行b()
return (this.state.data || 'Fetching Data');//如果没有state.data则返回后面的

4.转换Boolean型
常规的boolean型值只有 true 和 false,但是在JavaScript中我们可以将其他的值认为是 ‘truthy’ 或者 ‘falsy’的。
除了 0, “”, null, undefined, NaN 和 false,其他的我们都可以认为是 ‘truthy’的。

let a = null;
console.log(null==0)//false
console.log(!!null==0)//true, 加了两个!的null就变成了boolean,就双等0了,undefined和NaN同理

5.string,number转换(还是蛮常用的这个)

let a = 1+"";
console.log(typeof a)//string
let b = '1'-0;
console.log(typeof b)//number

let c = ~~"15";//利用两个按位取反的符号,进行类型的转换,转换成数字符号。
console.log(typeof c)//number:15
let d = ~~"true";//0,如果不能转换成数字符号,就是0了
let e = ~~null;//0
let f = ~~undefined;//0
let g = ~~true;//1

6.快速求幂
es7:

Math.pow(2, n);
2 << (n - 1);
2**n;
console.log(2 ** 3); // 8

7.截取数组

let array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
array.length = 4;
console.log(array); //  [0, 1, 2, 3]

let arr = array.slice(0, 4);//[0, 1, 2, 3]

你可能感兴趣的:(记录JS一些比较实用便捷的小技巧(二))