JavaScript 运算符知识点整理
算数运算符
算数运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 陈 |
/ | 除 |
% | 取余 |
+ + | 累加 |
- - | 递减 |
i ++
与++ i
的区别i ++
:先赋值后计算,++ i
:先计算后赋值。var i= 1;
var s = i ++ + ++ i;
for(var a = 0;a < 100;a ++)
{i = i ++;
};
console.log(i);
问上题 i
的结果
第一步:i = 1
;
第二步:s = i ++ + ++i
;其中 i++
后 i = 2
,其次 ++i
后 i = 3
;
第三步:循环100次的 i = i ++
;每一次循环 i ++
先赋值给 i ,在进行自加,所以 i 的结果不变,i = 3
;
则本题结果i= 3;
算数运算符的优先级:
先*
/
%
后+
-
逻辑运算符
逻辑运算符 | 描述 |
---|---|
丨丨 | 或 (一真为真) |
&& | 且(一假为假) |
! | 非 |
算数运算符
算数运算符 | 描述 | 结果 |
---|---|---|
+ = | 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 |
var x = 5;
var y = 6;
x += y;
console.log(x);
上题中声明了两个变量x
, y
,当x += y
时,即x = x + y
,则输出x = 11
。
三元运算符
三元运算符需要三个操作数。
语法为:条件表达式?表达式1:表达式2。
条件表达式:执行判断,返回布尔值;
表达式1:返回结果为:true 执行的内容;
表达式2:返回结果为:false 执行的内容(可嵌套三元运算符)。
var score = 80;
var result = score >= 90 ? "优秀" : score >= 60 ? "及格" : "不及格"
console.log(result);
上题中判断得分是否为优秀,及格或者不及格,首先判断score >= 90
,返回false
。则再次判断score >= 60
,返回为true
,则输出及格。
位运算符
按位与
&
二进制对应都为1的时,则该位的结果为1,反之为0。
var num1 = 5;
var num2 = 3;
var r = num1 & num2;
console.log(r);
5:101
3:011
--------
r:001 1
可用于判断奇偶性
console.log( (10 & 1) === 0 );//true偶数
console.log( (9 & 1) === 0 );//false奇数
按位或
|
二进制对应存在1的时,则该位的结果为1,反之为0。
var num1 = 5;
var num2 = 3;
var r = num1 & num2;
console.log(r);
5:101
3:011
--------
r:111 7
可用于与0按位或向下取整。
按位左移
<<
二进制向左移动N位,右边以0补位。
console.log(2 << 1);// 4
console.log(2 << 2);// 8
console.log(2 << 3);// 16
console.log(2 << 4);// 32
按位右移
>>
二进制向右移动N位,左边边以0补位。
console.log(8 >> 1);//4
console.log(8 >> 2);//2
console.log(8 >> 3);//1
console.log(8 >> 4);//0
异或
^
二进制对应只存在一个1的时,则该位的结果为1,反之为0。
var num1 = 5;
var num2 = 3;
r = num1 ^ num2
console.log(r);
5:101
3:011
---------------
r:110 6
可用于num1
与num2
值得交换。
num1 = num1 ^ num2;
5: 101
3: 011
------------
num1: 110 6
num2 = num2 ^ num1;
3:011
6:110
----------
num2: 101 5
num1 = num1 ^ num2;
6:110
5:101
----------
num1: 011 3
还没有评论,来说两句吧...