运算符总结
算术运算符,包括+ - * / % ++ --
++ -- 是作为前缀的话,就是先加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);