JS运算符
一、赋值运算符
= 将右边的值赋给左边变量
二、算数运算符
+ - * / % 加 减 乘 除 取余
三、符合运算符
+= -= *= /= %=
四、自增或自减运算符
++ -- 变量的自增和自减指的是在自身基础上进行 +1或-1 的操作
注意:
自增或自减运算符在单独与变量结合时,放前和放后没有区别(b++;++b;)
如果自增或自减运算符与其他运算符结合使用,要区分前缀和后缀,做前缀,那就先++/--,再进行赋值或其他运算,如果做后缀,就先结合其他运算符,再进行++ / --
var s = true; s++; console.log(s,typeof s) //2 Number
var n =5; var r =n++ + ++n + n++ + ++n +n; //5+ 7+ 7+ 9+ 9 //分解 var r1=n++; //r1=5 n=6 var r2=++n; //r2=7 n=7 var r3=n++; //r3=7 n=8 var r4=++n; //r4=9 n=9 var r5=+n; //r5=9 n=9
五、关系运算符/比较运算符
> <
>= <=
==(相等) !=(不相等)
===(全等) !==(不全等)
(1)关系运算符用来判断表达式之间的关系,结果永远是布尔值 true/false
(2)使用
字符串与字符串之间的比较
依次比较每位字符的Unicode码,只要某位字符比较出结果,就返回最终结果
其他情况
一律将操作数转换为number进行数值比较,如果某一操作数无法转换number,则变成NaN参与比较运算,结果永远是false
var res1=10>2; var res2='10'>'2'; //'1'>'2' var res3 = '人生苦短'>'我学Python'; //'人'>'我'; console.log(res1,res2,res3) //true false false var s1 = '人'; var s2 = '我'; //获取字符的 Unicode编码charCodeAt(index) console.log(s1.charCodeAt(),s2.charCodeAt(),res3)//20154 25105 false var res4 = '10'>2; var res5 = '10'>true; //10>1 var res6 = true > false; //1>0 console.log(res4,res5,res6) //true true true var res7 = '10'>undefined; //10>NaN false var res8 = '10'>null; //10>0 var res9 = 'true' > false; //NaN>0 console.log(res7,res8,res9) //false true false
(3)相等与全等
相等 : 不考虑数据类型,只做值的比较(包含自动类型转换)
全等 : 不会进行数据类型转换,要求数据类型一致并且值相等才判断全等
var r1 = 10=='10'; var r2 = 10==='10'; console.log(r1,r2); //true false
六、逻辑运算符
1.&& 逻辑与:表达式同时成立,最终结果才为true;全1则1
2.|| 逻辑或:表达式中只要有一个成立,最终结果即为true; 有1则1
//给出闰年判断的条件 能被4整除,不能被100整除,或者被400整除 var year=2015; var r=year%4==0&&year%100!==0 ||year%400==0; console.log(typeof year,r)
//"number" false
3.! 逻辑非:对已有表达式的结果取反
注意 : 除零值以外,所有值都为真
var r1 = !5; //false //逻辑非的优先级高于关系运算 var r2 = !5<3; //true false<3 console.log(r1,r2) //false true
七、三目运算符
语法 :表达式1 ? 表达式2 : 表达式3;
过程 :
判断表达式1是否成立,返回布尔值
如果表达式1成立,执行表达式2;
如果表达式1不成立,执行表达式3;
var a = 10; if (a>5){ console.log('成立'); //成立 }else{ console.log('不成立'); } var res=a>5?'ok':'error'; console.log(res) //ok a = 3; var res2 = a>5?'ok':a>=3?'>=3':'<3'; console.log(res2) //>=3
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script> 7 /* 8 接收用户输入的身高(m)和体重(kg) 9 计算BMI=体重/(身高*身高) 10 对bmi保留一位小数 11 并且判断身体质数: 12 bmi<18.5 '瘦' 13 18.5<bmi<23.9 健康 14 bmi>23.9 肥胖 15 */ 16 var m=prompt('请输入身高'); 17 var kg=prompt('请输入体重'); 18 bmi=kg/(m*m); 19 b=bmi.toFixed(1); 20 var res=bmi>=23.9?'肥胖':bmi=<18.5?'瘦':'健康'; 21 console.log(b,res); 22 </script> 23 </head> 24 <body> 25 <p>prompt('请输入身高')<input type="text"></p> 26 </body> 27 </html>