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,其次 ++ii = 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

可用于num1num2值得交换。

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	  
发布了33 篇原创文章 · 获赞 24 · 访问量 5545

猜你喜欢

转载自blog.csdn.net/qq_39157944/article/details/96887664