8.1 算术运算(+ - * / %)
两边都转换为number值 再运算
// + - * / %var a =3;var b = 3.3;var c = 4;console.log(a*b) // 9.899999999999999console.log(b/a) // 1.0999999999999999console.log(c%a) // 1
8.2 比较运算 (>,<,=,==,===,!)
先将两边的值转为number,再比较 结果返回boolean
console.log(true>0);console.log("11">10);console.log("9">10);console.log("9"==9);//=赋值 ==相等console.log("6"!=true);//===不仅值要相等,数据类型也要一样console.iog("6"===6);console.log(5===5);var b = Number(null);var c = Number(undefined);console.log(b);//0console.log(c);//NaN//null特殊情况 null在运算中,不会转换成number,他不等于任何值。console.log(null==undefined) //trueconsole.log(Boolean(NaN)) //falseconsole.log(null==0) //falseconsole.log(null==false) //falseconsole.log(undefined==false) //falseconsole.log(undefined==0) //false
8.3 逻辑运算 (&&,||,!)
先将两边的值转为boolean,再进行运算,结果返回boolean
&& 的优先级高于 ||
// &&逻辑与 两边都为true,结果才为true 返回最后一个条件 遇到false直接返回// ||逻辑或 只要有一边为true 结果一定为true(碰到true就直接返回)两边都为false/true,结果为false/true// !逻辑非 取反console.log(10>3 && 12>5)console.log(10>4 && 4>50)console.log(10>3 || 4>4)console.log(!(5>4))console.log(!!false)console.log("abc" && 10) // 10console.log(0 && "abc") // 0//两边为true 放回最后一个 碰到false直接返回var b = 0 || "abc"var c = "abc" || 1;var d = 0 || NaNconsole.log(b) // abcconsole.log(c) // abcconsole.log(d) // NaN//遇到true直接返回//总结:逻辑运算是先将两边的值转换成boolean,再进行运算
8.4 赋值运算 (+=,-=,/=,%=)
var a = 2;/* a= a+2; */a+=2;var b = 10;/* b = b-4 */b-=4;console.log(a);console.log(b);
8.5 三元表达式
//是true就输出问好后面第一段是false就输出问好后面第二段var b = (4<3)?"大于":"小于";console.log(b)/*var b = condition? exp01: exp02;condition-- true 输出exp01condition-- false 输出exp02*/
