operator
- 算数运算符 + - * / %
//两个浮点数相加会存在精度问题,所以不要直接相加
var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004
console.log(0.07 * 100); // 结果不是 7, 而是:7.000000000000001
- 前置递增运算符 ++num
//使用口诀:先自加,后返回值
var p = 10;
console.log(++p + 10); //21
- 后置递增递减运算符 num++
// 先返回原值 后自加
var num = 10;
alert(10 + num++); // 20
- 比较运算符
比较运算符(关系运算符)是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值
(true / false)作为比较运算的结果。
//1. 我们程序里面的等于符号 是 == 默认转换数据类型 会把字符串型的数据转换为数字型 只要求值相等就可以 (有隐式转换)
console.log(3 == 5); // false
// 2. 我们程序里面有全等 一模一样 要求 两侧的值 还有 数据类型完全一致才可以 true
console.log(18 === 18);
console.log(18 === '18'); // false
- 逻辑运算符
&& || !
逻辑非(!)也叫作取反符,用来取一个布尔值相反的值,如 true 的相反值是 false
// 3. 逻辑非 not !
console.log(!true); // false
- 短路运算(逻辑中断)
短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;
//逻辑与 如果第一个表达式的值为真,则返回表达式2
console.log( 123 && 456 ); // 456
// 如果第一个表达式的值为假,则返回表达式1
console.log( 0 && 456 ); // 0
// 如果有空的或者否定的为假 其余是真的 0 '' null undefined NaN
console.log('' && 1 + 2 && 456 * 56789); // ''
// 逻辑或 如果第一个表达式的值为真,则返回表达式1
console.log( 123 || 456 ); // 123
// 如果第一个表达式的值为假,则返回表达式2
console.log( 0 || 456 ); // 456
- 赋值运算符
=, +=, -=, *=, /=, %=
**运算符优先级 **