【JS】运算符优先级汇总

news/2024/11/19 6:24:09/

文章目录

  1. 如果 OP1 和 OP2 具有不同的优先级(见下表),则优先级最高的运算符先执行,不用考虑结合性。
console.log(3 + 10 * 2); // 输出 23
console.log((3 + 10) * 2); // 输出 26 因为括号改变了优先级
  1. 如果 OP1 和 OP2 具有相同的优先级,则需考虑结合性。
    • 左结合(左到右)相当于把左边的子表达式加上小括号 (a OP b) OP c
    • 右结合(右到左)相当于 a OP (b OP c)
// 赋值运算符是右结合的:
a = b = 5; // 相当于 a = (b = 5);
  • 下面的表格将所有运算符按照优先级的不同从高(19)到低(1)排列。
优先级运算符类型结合性运算符
19分组n/a(不相关)()
同上成员访问从左到右.
同上需计算的成员访问同上...
同上函数调用同上fun()
同上可选链(Optional chaining)同上?.
同上new(带参数列表)n/anew
17new(无参数列表)从右到左new
16后置递增n/a++
同上后置递减同上--
15逻辑非 (!)从右到左!
同上按位非 (~)同上~
同上一元加法 (+)同上+
同上一元减法 (-)同上-
同上前置递增同上++
同上前置递减同上--
同上typeof同上typeof
同上void同上void
同上delete同上delete
同上await同上await
14幂 (**)从右到左**
13乘法 (*)从左到右*
同上除法 (/)同上/
同上取余 (%)同上%
12加法 (+)从左到右 +
同上减法 (-)同上-
11按位左移 (<<)从左到右 <<
同上按位右移 (>>)同上>>
同上无符号右移 (>>>)同上>>>
10小于 (<)从左到右<
同上小于等于 (<=)同上<=
同上大于 (>)同上>
同上大于等于 (>=)同上 >=
同上in同上in
同上instanceof …同上instanceof
9相等 (==)从左到右==
同上不相等 (!=)同上!=
同上一致/严格相等 (===)同上===
同上不一致/严格不相等 (!==)同上!==
8按位与 (&)从左到右&
7按位异或 (^)从左到右^
6按位或 (|)从左到右|
5逻辑与 (&&)从左到右&&
4逻辑或 (||)从左到右||
同上空值合并 (??)从左到右??
3条件(三元)运算符从右到左? … :
2赋值从右到左=
同上同上同上+=
同上同上同上-=
同上同上同上 **=
同上同上同上*=
同上同上同上/=
同上同上同上%=
同上同上同上<<=
同上同上同上>>=
同上同上同上>>>=
同上同上同上&=
同上同上同上^=
同上同上同上|=
同上同上同上&&=
同上同上同上||=.
同上同上同上??=
1逗号 / 序列从左到右,

http://www.ppmy.cn/news/1000040.html

相关文章

Tomcat安装与管理

文章目录 Tomcat安装及管理Tomcat gz包安装&#xff1a;JDK安装&#xff1a;Tomcat安装&#xff1a;修改配置文件&#xff08;如下&#xff09;&#xff1a;服务启动配置&#xff1a; Tomcat-管理(部署jpress)&#xff1a;修改允许访问的主机修改允许管理APP的主机进入管理&…

【C++】类和对象-继承

0.前言 1.基本语法 继承的用处就是极大的减少代码的重复性&#xff0c;如果没有用继承&#xff0c;看看以下代码&#xff0c;你知道了。。。。 基本实现代码&#xff1a; #include <iostream> using namespace std; /******************************************/void …

数据库同步时,通过存储过程找出时间内发生变化的视图和物化视图

1. 应用场景 在软件开发或数据库运维过程&#xff0c;每一次数据库同步都是运维人员的痛苦的过程。 如果每次都是无脑全量更新&#xff0c;则工作量较大如果每次都是增量更新&#xff0c;则需要知道哪些视图谁在什么时候修改了&#xff0c;增加了什么信息&#xff08;因为往往…

【python学习笔记】extend() 方法和append()方法

当使用 extend() 方法时&#xff0c;可以将一个可迭代对象中的元素添加到列表中&#xff0c;而不是将整个可迭代对象作为单个元素添加到列表中。这样可以实现列表的扩展&#xff0c;而不是简单地将另一个可迭代对象作为单个元素添加到列表中。 # 使用 extend() 方法前 fruits …

2023最新AI艺术二维码制作软件教程【软件工具+教程】下载

2023最新AI艺术二维码傻瓜式生成教程&#xff0c;不需要市面上繁琐的安装步骤和显卡的配置要求&#xff01;我看了一眼市面上的要么只有视频教程&#xff0c;无工具纯纯牛马用来扯淡了。 要么就是安装繁琐&#xff0c;配置要求还高&#xff01; 这期教程教大家怎么傻瓜式制作…

第六章:SpringMVC上

第六章&#xff1a;SpringMVC上 6.1&#xff1a;SpringMVC简介 什么是MVC MVC是一种软件架构的思想&#xff0c;将软件按照模型、视图、控制器来划分。 M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据。 一类称为实体类Bean&…

邀请媒体现场报道,有哪些作用?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 邀请媒体现场报道活动具有多种重要作用和意义&#xff0c;可以为你的活动带来广泛的曝光和正面影响。以下是一些邀请媒体现场报道的作用和意义&#xff1a; 1. 增加活动曝光度&#xff…

rust vec如何转为数组?

使用 Vec 的 into_boxed_slice 方法将 Vec 转换为 Box<[T]> &#xff0c;然后使用 into_vec 方法将 Box<[T]> 转换为动态大小的数组。示例代码如下&#xff1a; let vec: Vec<i32> vec![1, 2, 3, 4, 5]; let array: Box<[i32]> vec.into_boxed_slic…