关于一点老司机的js写法
2018-06-26 本文已影响122人
AAA前端
//取整
parseInt(a,10); //Before 1.23|0 = 1
Math.floor(a); //Before 1.23|0 = 1
a>>0; //Before 1.23|0 = 1
~~a; //After 1.23|0 = 1
a|0; //After 1.23|0 = 1
// 取半
a>>1 // 4>>1 = 2
// 判断奇偶
num & 1 // 3&1=1; 2&1=0;
// 交换两个数字的值 ^=
var num1 = 1, num2 = 2;
num1 ^= num2
num2 ^= num1
num1 ^= num2
使用数组
num1 = [num2, num2 = num1][0]
// 字符串转数字
+num // +'2' 2
//四舍五入
Math.round(a); //Before
a+.5|0; //After
//内置值
undefined; //Before
void 0; //After, 快
0[0]; //After, 略慢
//内置值
Infinity;
1/0;
//布尔值短写法
true; //Before
!0; //After
//布尔值短写法
false; //Before
!1; //After
其中
<< 类似于几次方 并取下
3.4 ** 1= 3.4
3.4 << 0 = 3; //几次方+1这么理解比较好理解
所以可以 2 <<1 = 4 2<<2 =8 2<<3 =16
类似的 >> 就是几次幂了,也是去下
4 >> 1 = 2 16>>2 =8 16>>3 = 2