运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。
JavaScript中常见的运算符
算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 = 2 |
- | 减 | 1 - 1 = 0 |
* | 乘 | 1 * 1 = 1 |
/ | 除 | 1 / 1 = 1 |
% | 取余数(取模) | 5 % 3 = 2 |
- 注意,如果用浮点数进行计算会发生精度丢失的问题
- 浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。
- 不要直接判断两个浮点数是否相等!
var result = 0.1 + 0.2; // 结果不是0.3,而是0.30000000000000004
console.log(0.07 * 100); // 结果不是7,而是7.000000000000001
递增和递减运算符
-
开发时,大多使用后置递增/减,并且代码独占一行,例如:num++; 或者num–
-
前置递增(递减)运算符
前置递增(递减)运算符是先+1或-1,再返回值
var b = 1; console.log(++b); //2 console.log(b); //2
-
后置递增(递减)运算符
后置递增(递减)运算符是先返回值,再+1或-1
var a = 1; console.log(a++); //1 console.log(a); //2
比较运算符
-
比较运算符(关系运算符)是两个数据进行较时所使用的运算符,返回值是布尔值(``true/false`)
运算符 说明 实例 结果 < 小于 1 < 2 true > 大于 1 > 2 false <= 小于等于 3 <= 2 false >= 大于等于 2 >= 2 true == 判等号 37 == '37’或30 == 30 true != 不等号 37 != '37’或30 != 30 false === 全等 37 === ‘37’ false !== 不全等 37 !== ‘37’ true -
==
和!=
在比较时都会自动转换数据类型 -
===
要求值和数据类型完全一致才是true
-
!==
只要值和数据类型有一个不一样就是true
逻辑运算符
-
逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。开发中经常用于多个条件的判断
运算符 说明 实例 && “逻辑与”,简称"与" and true && false //false || “逻辑或”,简称"或" and true || false //true ! “逻辑非”,简称"非" and !true //false -
&&
必须两边都为真结果才是true
,只要有一个假结果就是假(有假且为假) -
||
只要有一个为真结果就是真(有真或为真) -
短路运算:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再运算右边的表达式的值
-
逻辑与短路运算:如果前面的条件为真,则一直往后运算,直到运算到最后一个或者条件为假
console.log(1 && 10 && 8 && 3); //3 console.log(1 && undefined && 0 && 3); //undefined
-
逻辑与短路运算:如果前面的条件为假,则一直往后运算,直到运算到最后一个或者条件为真
console.log(0 || '' || null || undefined); //undefined console.log(0 || '' || 5 || null || undefined); //5
-
赋值运算符
-
用来把数据赋值给变量的运算符。
运算符 说明 实例 = 直接赋值 var a = 1; +=, -= 加 / 减一个数之后再赋值 var b = 2;b += 1//3 *=, /=, %= 乘,除,取模后再赋值 略
运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | ( ) |
2 | 一元运算符 | ++ – ! |
3 | 算术运算符 | 先 * / % 再 + - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先 && 后 || |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |