运算符号
优先级从高到底
1. () 优先级最高
2. 一元运算符 ++ -- !
3. 算数运算符 先* / % 后 + -
4. 关系运算符 > >= < <=
5. 相等运算符 == != === !==
6. 逻辑运算符 先&& 后||
7. 赋值运算符
1.算术运算符
+ - * / % (先* / % 后+ -)
一元运算符:只有一个操作数的运算符
二元运算符:有两个数的运算符
++ /-- 作为前缀 先自增/自减在使用 作为后缀 先使用在自增/自减
var num = 5 ;
num++;// num = num + 1
console.log(num);//6
console.log(num++);//?7 6
console.log(num);//7
console.log(++num);//8
// 8(9) 10 10(11)
var r = num++ + ++num + num++;
console.log(r);//25? 26 28
console.log(num);//?
// 优先级 先 * / % 再 + - 如果想提升优先级 使用()
var result = (35+ 2)*18/(3 + 12)/6%4;
2.关系运算符(比较运算符)
> < >= <= == != === !==
(最后的结果一定是boolean类型true或false)
== 判断两个数据是否相等 (值)
!= 不等于, 判断两个数据是否不相等 (值)
=== 判断数值和类型是否完全相等
!== 判断数值和类型是否完全不相等
eg:
var str = '100';
var n = 100;
console.log(str == n); //true
console.log(str === n); // false
1)string和number判断大小时,计算机用Number()将字符串隐式转换为number类型
2)2.任何一个数据与NaN进行比较时,结果一定都是false 30a会被转换为NaN
console.log('30a'>5);//false NaN > 5
3)string和string之间判断大小 根据每个字符的unicode码作比较
console.log('a'>'b');//false
console.log('张三丰'>"张无忌");
console.log('三:'+ '三'.charCodeAt());
console.log('无:'+ '无'.charCodeAt());
3.逻辑运算符
作用:多个条件之间的判断关系
&& 多个条件都必须满足 见false则false
短路或:只要第一个条件 为假的话,整个表达式的结果都为假,并且不会去判断第二个条件
|| 满足其中一个条件 见true则true
短路与:只要第一个条件为真的话,整个表达式结果就为真,并且不会去判断第二个条件时
! 取反
eg:
笔试成绩60 面试成绩60 才可录取
var bi = prompt("输入笔试成绩:");
var face = prompt("输入面试成绩:");
var isPass = (bi >= 60) && (++face >=60) ;
console.log('是否能入职?'+isPass)
笔试成绩和面试成绩有一个是100分就可以入职
var isPass1 = bi==100 || ++face ==100;
console.log('是否能入职?'+isPass1);
console.log(bi,face)
判断输入的数据是否为数字
var input = prompt("请输入:");
console.log('是不是一个数:'+ !isNaN(input) )
4.赋值运算符
= += -= *= /= %=
例如:
var num = 0;
num += 5; //相当于 num = num + 5;
三目运算符
需要三个操作数/表达式 表达式1 ? 表达式2 : 表达式3;
表达式1:运算结果应该为boolean类型
表达式1 = true 执行表达式2
表达式1 = false 执行表达式3
允许嵌套
eg:
var age = prompt("请输入你的年龄:");
// 如果age>=18 输出,允许考驾照 否则 输出 年龄未到
var result = age>=18? "允许考驾照":"年龄未到";
console.log(result);
/*判断成绩,如果成绩>=80 优秀
>=60 合格
<60 不及格*/
var score = prompt("输入成绩:");
var msg = score >= 80 ? "优秀" : score>=60 ? "合格":"不及格";
console.log(msg);