运算符总结

算术运算符,包括+ - * / % ++ --

++ -- 是作为前缀的话,就是先加1或者减1再使用;但是作为后缀的话就是先使用再加减。如:

var num =2;

var r =num++ +++num + num++;

console(r); 这里的运算过程第一个num就先使用2,然后加1等于3,第二个num就再加1使用,所以第二个num就是4,最后一个num也是先使用,就也是4,所以r的值是10.

然后那个计算机计算的话可能会出现误差,那么便可以使用 变量=变量.toFixed(2);这个代码来进行四舍五入,括号中的值用来设置保留几位小数。

%这个符号是取模,就是取余数,那么我们可以用这个符号来进行判断奇偶数。如

var num =prompt("请输入一个数");

consolo.log("偶数?"+num%2);

如果等出来的值是0 便是偶数,是1便是奇数。

接下来是关系运算符

<  >  <=  >= == != === !==

分别是小于 大于 小于等于 大于等于 等于 不等于 数值和类型完全相等  数值和类型完全不相等,这些运算符大多都是用来判断布尔类型的。

string 和 number 判断大小时, 将字符串隐式转换为number类型  这个转换的时候是用的Number()函数,所以有一个不是数字的字符就会成NaN。

任何一个数据与NaN进行比较时,结果一定都是false 。

string和string之间判断大小 根据每个字符的unicode码作比较。其他的话都比较简单不用一一举例,就上面几点要注意一下。

逻辑运算符

逻辑运算符 &&  ||  !(与 ,或,非)

&&就是两个都要满足

短路与;只要第一个条件为假的话,整个表达式的结果都为假,并且不会去判断第二个条件

||就是满足一个就行

短路或:只要第一个条件为真的话,整个表达式的结果都为真,并且不会去判断第二个条件

!这个的话一般配合isNaN使用,因为isNaN不符合正常人的逻辑顺序,所以把它反过来。

位运算符

& 按位 与 |  按位 或

只能做数字的运算,且要将数字转换为二进制,在做运算
& 按位 与 将两边的操作数转换成为二进制,每位的数字,只要对应都是1的时候,该位的结果才为1,否则该位结果为0

| 按位 或 将两边的操作数转换成为二进制,比较每位上的数字,两个数字中有一个是1,则该位的结果就是1 ,否则 0

通常&可以用来

判断奇偶性,比模的效率要高
判断数字与 1 做按位与 ,最后的一位 1 为奇数 0为偶数

|用来与0作取整 位运算一定会将数据转换为二进制,而小数会被转换为整数。

<< 按位左移

,将二进制数,向左移动几位 ,右面以0 补位
console.log(2 << 1);// 4
console.log(2 << 2);// 8
console.log(2 << 3);// 16
console.log(2 << 4);// 32
// 0000 0000 0001 0000,就是(a<<n);//a的n+1次方;

>> 按位右移 将二进制数,向右移动几位,左面以0 补位
console.log(8 >> 1);//4
console.log(8 >> 2);//2
console.log(8 >> 3);//1
console.log(8 >> 4);//0

这个(a>>n)//就是a/2的n次方,结果小于0之后就是0。

 ^  异或 将两边的数字转换为二进制 进行比较,每位上的数字,只有一个为1时,该位结果才为1,否则0

这个可以用来交换两个变量的值

交换num1 和num2的值
// num1 = num1 ^ num2;
num1 ^= num2;
// num2 = num2 ^ num1;
num2 ^= num1;
// num1 = num1 ^ num2;
num1 ^= num2;

赋值运算符

+=  -=  *=  /=  %=  &=  |=  ^= 

a+=b 就等同于a=a+b,其他同理

  单目运算符

 ++ -- !
 双目运算符
 + - * / % && || ^ & | > <
 三目运算符
需要三个操作数/表达式 表达式1 ? 表达式2 : 表达式3;
 表达式1:运算结果应该为boolean类型
表达式1 = true 执行表达式2
 表达式1 = false 执行表达式3
允许嵌套
var age = prompt("请输入你的年龄:");
如果age>=18 输出,允许考驾照 否则 输出 年龄未到

var result = age>=18? "允许考驾照":"年龄未到";
console.log(result);*/


var a=100,b=12;
var max = a > b ? a : b;
console.log(max);

判断成绩,如果成绩>=80 优秀

>=60 合格
<60 不及格*/

var score = prompt("输入成绩:");
var msg = score >= 80 ? "优秀" : score>=60 ? "合格":"不及格";
console.log(msg);

原文地址:https://www.cnblogs.com/yzxyzx/p/11228545.html