5-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
5-2 比较运算符( >,<,==,>=,<=,!= )
两边都先转换为number,再比较,返回的是 boolean
var a = true
var b = 1;
console.log(a==b) // true
console.log(a=="1") //true 两边都先转为number
注意: null == undefined
null 和 undefined 不能转化为其他值** Number(""),Number(" "),Number(null) => 输出 0**
// Number(""),Number(" "),Number(null) => 输出 0
console.log(false == ""); // true
console.log(true == 1); // true
console.log(null == undefined); // true
console.log(undefined == false); // false
console.log(1 == "1"); // true
console.log(null == false); // false
/* 1.只有有一边为 boolean 先两边转为number
2.一边为string,一边为number,先将两遍转为number
// 两边都先转为number
3. null == undefined
4. null 和 undefined 不能转化为其他值
*/
5-3 逻辑运算符( &&,||,! )
两边都先转换为boolean,再判断,返回的是boolean值
```javascript // && 逻辑与 两个为true,结果才为true // || 或 只要有一个为true,结果就为true // ! 非
console.log(3>2 && 4>3) // true && true 结果为true console.log(3>2 && 4<3) // true && false 结果为false
console.log(11>5 || 3<4) // true || false 结果为true
console.log(!(3>4)) //!false 结果为true
<a name="5j3aa"></a>
## 5-3-1 或运算的注意点
- **`|| 有一边为true,结果就为 true,遇到第一个true就会返回`**
```javascript
var b = 0 || "abc"
var c = "abc" || 1;
var d = 0 || NaN;
var e = "" || NaN;
console.log(b) // abc
console.log(c) // abc
console.log(d) // NaN
console.log(e) // NaN