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)