一 运算符含义
程序中模拟人的思维运算或判断的符号
二 算数运算 + - * / % ++ –
(一)%运算
1.含义–取余数
被除数/除数,不取商,而是取除不尽的余数部分
例如:6789%100–>89
2.何时使用
(1)判断奇偶数
n%2–>1 余数为1是奇数 否则是偶数
(2)限制一个运算的结果,不超过某个最大值(除数)
(二)++
1.含义
将当前变量中的值递增1
比如:n++==>n=n+1
2.何时使用
只要对变量中的值递增1,还存回变量中
3.前++和后++
(1)n++单独使用
前++和后++都一样
(2)n++运算参与到其他表达式中
①前++(++n)
将n中的值+1,表达式返回新值
②后++(n++)
将n中的值+1,表达式返回旧值
/*鄙视题*/
var n=2;
var r=++n + n++ + ++n;
// 3
//n=3
// 3
//n=4
// 5
//n=5
console.log(r); //11
console.log(n); //5
/*鄙视题*/
var n=2;
var r=n++ + ++n + n++;
// 2
//n=3
// 4
//n=4
// 4
//n=5
console.log(r); //10
console.log(n); //5
(三)–
将当前变量中的递减1,同++一样
三 关系运算
(一)含义
将两个值做比较: > < >= <= == !=
(二)返回值
只能返回两个值之一,如果成立,返回true,否则返回false
(三)隐式转换
将所有类型都转为number类型,再比较!
var n1=1.n2=3;
var s1="2",s2="3";
var b1=true,b2=false;
console.log(s2>n1);//true
console.log(b1>b2);//true
console.log(s2-n1==b1);//true
(四)特殊情况
1.两字符串做比较
依次PK每一位字符的unicode编号,只要有一位字符分出大小,就不再比较
比如 “3”>“10” -->true
“Smith”>“Scott” -->true
2.NaN
(1)含义
NaN和任何数据做大小或等于比较永远返回false
NaN和任何数据做不等于比较,永远返回true
(2)isNaN(num)
①含义
专门判断num是否是NaN
②返回值
如果是NaN返回true,否则返回false
③何时使用
今后只要判断一个数值是否是数字或数字能否被转为数字,都用isNaN,如果是数字,返回false,否则返回true
/*判断用户输入是否为数字*/
var input=parseInt(prompt("输入一个数据"));
console.log("是数字吗?"+!isNaN(input));
3.undefined VS null
undefined==null ==>true
var n;
console.log(n==null);//true
4.===全等
① 含义
数据类型要相同,再比较值是否相等,不带隐式转换
② 何时使用
只要不希望关系运算中自动隐式转换时
四 逻辑运算
(一)含义
综合多个关系运算的结果得出最终结论
(二)返回值
返回值二选一:满足条件返回true,否则返回false
(三)种类
1. 关系运算1&&关系运算2
两个条件必须都是true,才返回true,否则返回false
2. 关系运算1||关系运算2
只要有一个条件为true,则返回true;只有两个条件都为false时,才返回false
3.!关系运算
颠倒关系运算的true/false结果
(四)短路逻辑
1. 含义
如果前一个条件已经可以得出结论,则后续条件不再执行!
var n=10;
var r=n++>10 && ++m>10;
//10
//n=11
//false
console.log(r);//false
console.log(n);//11
var n=10;
var r=n++>10 || ++m>10;
//10
//n=11
//false
//报错
console.log(r);//报错
console.log(n);//
var n=10;
var m=10;
var r=n++>10 || ++m>10;
//10
//n=11
//false
//11
//m=11
//true
console.log(r);//true
console.log(n);//11
console.log(m)//11
2. 利用短路逻辑
(1)利用&&的短路逻辑
关系运算&&操作:只有满足关系运算时,才执行"操作"
var total=parseFloat(prompt("输入总价"));
//如果total>=500,就打八折
total>=500&&(total=total*0.8);
console.log("应收金额:"+total);
(2)利用 || 的短路逻辑
关系运算||操作:如果前一个条件不满足,才执行后一个"操作"
五 位运算
(一)左移
n<<m 将n的二进制,左移m位
比如: 1<<3 --> 1* 2的3次方
(一)右移
n>>m 将n的二进制,右移m位
比如: 8<<3 --> 8/ 2的3次方
六 扩展赋值运算
+= -= *= /= %=
(一)+=
1.含义
例如:n+=2;==>n=n+2
将n中值+2后,再保存n中
2.何时使用
今后只要对变量中的值进行累加时,都要用扩展赋值运算
七 三目运算
(一)什么是三目运算
根据不同的条件,多选一,返回不同的结果
(二)语法
条件1?值1;
条件2?值2;
…?..
默认值
(三)注意
无论三目运算多么复杂,结果只能是一个值
/*请用户输入工资:
如果工资>=20000,则输出土豪
如果工资<8000,则输出屌丝
否则,输出一般人
*/
var salary=prompt("输入工资");
console.log(
//如果工资>=20000,则输出土豪
salary>=20000?"土豪":
//如果工资<8000,则输出屌丝
salary<8000?"屌丝":
//否则,输出一般人
"一般人"
);