js运算符 及 运算符优先级

「运算符」是用于实现赋值、比较和执行算数运算等功能的符号。常用运算符分类如下👇符号

  • 算数运算符
  • 递增和递减运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符

算数运算符

运算符 描述 案例
+ 10+20=30
- 10-20=-10
* 10*20=200
/ 10/20=0.5
% 取余(取模) 返回除法的余数9%2=1

浮点数的精度问题

 var result = 0.1 + 0.2;    // 结果不是 0.3,而是:0.30000000000000004
 var val = 0.07 * 100;   // 结果不是 7,  而是:7.000000000000001
  • 浮点数值的最高精度是17位小数,但是在进行算数运算时其精确度远远不如整数,所以不要直接判断两个浮点数是否相等!

递增和递减运算符

//单独使用,效果一样
i++;
//等同于
++i;
var  num = 10;
alert(++num + 10);   // 21 使用口诀:先自加,后返回值

var  num1 = 10;
alert(10 + num1++);  // 20 使用口诀:先返回原值,后自加 
var num = 1;
var num2 = ++num + num++; //num = 2
console.log(num2);//4

var num = 1;
var num1 = 1;
var num2 = num++ + num1++; // 1 + 1
console.log(num2);//2

var num = 1;
var num2 = num++ + num++;// 1 + 2 
console.log(num2); // 3  

比较运算符

运算符 描述 案例 结果
< 小于号 1<2 true
> 大于号 1>2 false
>= 大于等于号(大于或者等于) 2 >= 2 true
<= 小于等于号(小于或者等于) 3 <= 2 false
== 判等号(会自动转型) 15 == '15' true
!= 不等号 37 != 37 false
=== !=== 全等 全不等(要求值和数据类型都一致) 37 === '37' false

逻辑运算符

逻辑运算符是用来进行布尔值运算的运算符。

运算符 描述 案例 特点
&& "逻辑与",简称"与" and true && false 两边都是 true才返回 true
|| "逻辑或",简称"或" or true 有真为真
! "逻辑非",简称"非" not !true 取反

逻辑运算符两边也可以是表达式

短路运算:当有多个表达式(值)时,若左边的表达式值可以确定结果,就不再继续运算右边的表达式的值

  // 逻辑与短路运算  如果表达式1 结果为真 则返回表达式2  如果表达式1为假 那么返回表达式1
        console.log(123 && 456); // 456
        console.log(0 && 456); //  0
        console.log(0 && 1 + 2 && 456 * 56789); // 0
        console.log('' && 1 + 2 && 456 * 56789); // ''

// 逻辑或短路运算  如果表达式1 结果为真 则返回的是表达式1 如果表达式1 结果为假 则返回表达式2
        console.log(123 || 456); // 123
        console.log(123 || 456 || 456 + 123); // 123
        console.log(0 || 456 || 456 + 123); // 456
        // 逻辑中断很重要 它会影响我们程序运行结果
        var num = 0;
        console.log(123 || num++);
        console.log(num); // 0

看到这可能有点懵,到底返回哪个值,有个理解诀窍:不管是逻辑与还是逻辑或的短路运算,返回结果都是可最终确定结果的那个值

赋值运算符

运算符 描述 案例
= 直接赋值 var userName = 'fan'
+= -= 加减一个数后再赋值 var age=5; age+=5
*= /= %= 乘、除、取模后再赋值 var age=5; age*=5

运算符优先级

优先级 运算符 顺序
1 小括号 ()
2 一元运算符 ! ++ --
3 算数运算符 先* / % 后+ -
4 关系运算符 > >= < <=
5 相等运算符 == != === !==
6 逻辑运算符 先&& 后||
7 赋值运算符 =
8 逗号运算符 ,
  • 优先级逐级递减,即括号优先级最高,逗号最低
  • 优先级逻辑与&& > 逻辑或||
posted @ 2021-06-26 23:20  至安  阅读(344)  评论(0编辑  收藏  举报