8.1 算术运算(+ - * / %)
两边都转换为number值 再运算
// + - * / %
var a =3;
var b = 3.3;
var c = 4;
console.log(a*b) // 9.899999999999999
console.log(b/a) // 1.0999999999999999
console.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);//0
console.log(c);//NaN
//null特殊情况 null在运算中,不会转换成number,他不等于任何值。
console.log(null==undefined) //true
console.log(Boolean(NaN)) //false
console.log(null==0) //false
console.log(null==false) //false
console.log(undefined==false) //false
console.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) // 10
console.log(0 && "abc") // 0
//两边为true 放回最后一个 碰到false直接返回
var b = 0 || "abc"
var c = "abc" || 1;
var d = 0 || NaN
console.log(b) // abc
console.log(c) // abc
console.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 输出exp01
condition-- false 输出exp02
*/