一、算术运算符
算术运算符包括常见的:+、- 、* 、/ 、% 、++ 、--
<1>模运算符(%)常用来判断奇偶性:x%2==0 偶数, x%2!=0 奇数 ;还用来保证参与运算的结果永远不大于除数。
<2>不论是++还是--,永远都是递增或递减后的数值存回原变量中
注:n++和++n的异同处!
n++和++n这两种表达式的共同点都是在n递增1后再存回变量值。不同点在于表达式是否参与了程序结构。如果参与了程序结构,那么程序结构中的取值不同
n++:返回n的旧值
++n:返回n的新值
笔试面试题:(要注意分辨变量初始值和最终参与运算值)
var n=6; console.log(n++ + ++n + n++); //22 // 6->6 // + 7->8 // + 8->8 6+8+8=22
二、关系运算符
关系运算符主要包括:> 、< 、 = 、>= 、<= 、== 、!=
<1>默认将所有类型数据转换为数字再行比较
<2>如果参与运算的两值都为字符串,依次取出每个字符串的每位字符依次PK,PK unicode号(万国语言编码号)
var str1="bf";
var str2="bd";
console.log(str1<str2); //false
三、扩展赋值运算符
扩展赋值运算符包括:+= 、-= 、*= 、/= 、%=
一般用于累加,累减,累乘,累除原变量。
例如:n=n+m—>n+=m
四、逻辑运算符
逻辑运算符包括:&&(与) 、|| (或) 、!(非)
- 逻辑运算是指将多个关系运算综合起来,在得出结论后,返回boolean 值的运算
- 程序执行效率很高,只要有一个不符条件就会终止代码的运行,不同于 数学表达式2<a<5,程序需要分布判断。
<1>a&&b - 只有当条件a与条件b均为true时,最终结果为 true
<2>a&&b - 当a和b都是数字时,得到的也是数字(0是假的, 其余都是真的。如果有0,得到的就是0,否则就是 表达式的最后一个值)
var a=8;
console.log(2<a<5); //true
// 2<8 ->true:1
// 1<5->true
console.log(2<a&&a<5); //false
console.log(2<3&&2<9); //true
console.log(2>5&&1<7); //false
console.log(1&&2&&3&&4); //4
console.log(2&&5&&0&&7); //0
<3>a||b - a和b中有一个为真,结果便为真。(程序从左到右 执行,遇到一个为真的条件就会停止执行)
<4>a||b - 当a与b都为纯数字时,得到的也是数字,得到的 是第一个非0的数字
console.log(2<5||4>9); //true
console.loh(2>5||4>9); //false
console.log(0||3||6); //3
console.log(1||4||2||7); //1
<5>!a - 取反,当a为真时,结果为假;当a为假时,结果为真
【要注意加()与不加的区别!若不加括号,就会先行执行!a,!a->false->0,随后0再参与运算】
var a=6;
consol.log(!a<3); //true
console.log(!a<8); //true
console.log(!(a<3)); //true
console.log(!(a<8)); //false
五、三目运算符(三元运算/条件运算)
判断式?值1(判断式为真时所取值):值2(判断式为假所取值)
例子: n%2==0 ? "偶数" : "奇数"
//克莱托指数KLT: kg/(身高*身高M)
// KLT >25:过胖 <20:过瘦 其余正常
var m=parseFloat(prompt("请输入你的身高(m)"));
var kg=parseFloat(prompt("请输入你的体重(kg)"));
var KLT=kg/m/m;
console.log(KLT>25?"过胖":(KLT<20?"过瘦":"正常"));