JS类型转换奇技淫巧

JS类型转换奇技淫巧

很酷炫有木有!!!因为可读性低,所以有些技巧并不提倡使用。但遇见别人这样写,得看得懂是怎么一回事!

转布尔型

!!''         //=> false
!!null       //=> false
!!undefined  //=> false
!!NaN        //=> false
!!0          //=> false
!!1          //=> true
!!-1         //=> true
!![]         //=> true
!!{}         //=> true
!!window     //=> true
!!Infinity   //=> true

转字符串

'' + 123      //=> '123'
'' + true     //=> 'true'

转数值型

+new Date     //=> 1456480246437
+'123'        //=> 123

向下取整

~~3.4          //=> 3
3.4|0          //=> 3
-3.4^0         //=> -3
-3.4 >> 0      //=> -3

indexOf判断

var arr = [1,2,3];
if(!~arr.indexOf(4)){
  arr.push(4);
}
!!~arr.indexOf(1) //=> true
!!~arr.indexOf(5) //=> false

类数组转数组

var arrLike = {0:'abc',1:'xyz',length:2};
Array.prototype.slice.call(arrLike)        //=> ['abc','xyz']
//常用 Array.prototype.slice.call(arguments)

你可能感兴趣的:(JS类型转换奇技淫巧)