Javascript赋值运算符
赋值运算符将值赋给变量
运算符 | 例 | 相当于 |
---|---|---|
= | x = y | x = y |
+= | x += y | x = x + y |
-= | x -= y | x = x – y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
%= | x %= y | x = x % y |
<<= | x <<= y | x = x << y |
>>= | x >>= y | x = x >> y |
>>>= | x >>>= y | x = x >>> y |
&= | x &= y | x = x & y |
^= | x ^= y | x = x ^ y |
|= | x |= y | x = x | y |
**= | x **= y | x = x ** y |
**= 运算符是在 ECMAScript 2016 proposal (ES7) 中开始有的试验性运算符,考虑到浏览器兼容性,请慎用。
注:小学生都会的那种,过于简单的例子这里就不列出了。
%=
var x = 7,
y = 4,
z = -2.5;
x %= y;
console.log(x); // x=3,7/4余数3
z %= x;
console.log(z); // z=-2.5,(-2.5)/3,没得除,余下-2.5
y %= z;
console.log(y); // y=1.5,哇唔,请继续往下看。
点击负数取余运算了解更多。鉴于初学者求余的使用率较低,所以暂时不用花太多的时间研究含负数的求余运算。了解简单的求余运算就行。
说到求余,求余常用于判断一个数是否可以被另外一个数整除。
<<=
将数值的二进制左移N位。
var x = 1;
x <<= 2;
console.log(x); //将1的二进制左移两位,然后移位的二进制转为十进制输出。答案是4。即,1的二进制是1,左移两位就是100,二进制100转成十进制得4.
>>=
var x = 1;
x >>= 6;
console.log(x); //将1的二进制右移6位,然后移位的二进制转为十进制输出。答案是0。即,1的二进制是1,右移6位。但是没有办法往更低位补码,所以可以说1右移移出去了。原本的最低位剩下0。得0。
&=
var x = 30;
x &= 28;
console.log(x); //答案28。意思就是x = 30&28;30的二进制是11110,28的二进制是11100。按位比较,1&1为1,1&0为0,所以得11100,转十进制为28。
^=
var x = 30;
x ^= 28;
console.log(x); //答案2。意思就是x = 30^28;30的二进制是11110,28的二进制是11100。按位比较,0^0=0,1^0=1,0^1=1,1^1=0(同为0,异为1)。所以答案是:2。
|=
var x = 30;
x |= 28;
console.log(x); //答案30。意思就是x = 30|28;30的二进制是11110,28的二进制是11100。按位比较,只要不是均为0都为1。所以答案是:30。
下面再次总结一下按位运算规则:
按位与 – AND (位与&)
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
按位或 – OR ( 位或| )
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
按位异或 – XOR ( 位异或^ )
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。