js技巧篇(一)类型强制转换

2018, Nov 16    

string类型转number

可以使用 *1来转化为数字(调用的是valueOf方法),再使用Number.isNaN或者a != a判断NaN

‘12’*1      //12

‘aa’*1      //NaN

null *1      //0

undefined*1      //NaN

常用:也可以用+来转化字符串为数字,或者-0来转化

+’12’      //12

+’aa’      //NaN

+’’      //0

+null      //0

+undefined      //NaN

object类型转string

JSON.stringfy(object) 对象字符串化

过滤假值(false)

假值:false, null, 0, “”, undefined, NaN, 可以用ES6的Array.filter

const compact = arr => arr.filter(Boolean)

compact([0, 1, false, 2, ‘’, 3, ‘a’, ‘e’ * 23, NaN, ‘s’, 34])      // [ 1, 2, 3, ‘a’, ‘s’, 34 ]

短路运算符

&&和||,是从左到右的运算,前者满足,就不再执行 &&为取假运算,一假必假 ||为取真运算,一真必真

使用的时候,可以减少多次的if语句,但要小心”“也许是想要的

取整 |0

这个很有用,负数也适用。正数向下取整,负数向上取整

判断奇偶 &1

和%2功能一致

const num=3;

!!(num & 1)      // true

!!(num % 2)      // true