javascript中运算符的优先级

运算符优先级

JavaScript中的运算符优先级是一套规则。该规则在计算表达式时控制运算符执行的顺序。具有较高优先级的运算符先于较低优先级的运算符执行。例如,乘法的执行先于加法。

下表按从最高到最低的优先级列出JavaScript运算符。具有相同优先级的运算符按从左至右的顺序求值。

其中圆括号可用来改变运算符优先级所决定的求值顺序。这意味着圆括号中的表达式应在其用于表达式的其余部分之前全部被求值。

z = 78 * (96 + 3 + 45)

在该表达式中有五个运算符: =, *, (), +, 以及另一个 +。根据运算符优先级的规则,它们将按下面的顺序求值: (), +, +, *, =。

结合性

结合性决定了拥有相同优先级的运算符的执行顺序。考虑下面这个表达式:

a OP b OP c

左结合(从左到右计算)相当于把左边的子表达式加上小括号(a OP b) OP c,类似的,右关联(从右到左计算)相当于a OP (b OP c)。赋值运算符是右关联的,所以你可以这么写:

a = b = 5;

结果 a 和 b 的值都会成为5。这是因为赋值运算符的返回结果就是赋值运算符右边的那个值,具体过程是:b被赋值为5,然后a也被赋值为 b=5 的返回值,也就是5。

汇总表

下面的表将所有运算符按照优先级的不同从高到低排列。

优先级(从高到低) 运算类型 关联性 运算符
19 圆括号 n/a ( … )
18 成员访问 从左到右 … . …
需计算的成员访问 从左到右 … [ … ]
new (带参数列表) n/a new … ( … )
17 函数调用 从左到右 … ( … )
new (无参数列表) 从右到左 new …
16 后置递增(运算符在后) n/a … ++
后置递减(运算符在后) n/a … --
15 逻辑非 从右到左 ! …
按位非 从右到左 ~ …
一元加法 从右到左 + …
一元减法 从右到左 - …
前置递增 从右到左 ++ …
前置递减 从右到左 -- …
typeof 从右到左 typeof …
void 从右到左 void …
delete 从右到左 delete …
14 乘法 从左到右 … * …
除法 从左到右 … / …
取模 从左到右 … % …
13 加法 从左到右 … + …
减法 从左到右 … - …
12 按位左移 从左到右 … << …
按位右移 从左到右 … >> …
无符号右移 从左到右 … >>> …
11 小于 从左到右 … < …
小于等于 从左到右 … <= …
大于 从左到右 … > …
大于等于 从左到右 … >= …
in 从左到右 … in …
instanceof 从左到右 … instanceof …
10 等号 从左到右 … == …
非等号 从左到右 … != …
全等号 从左到右 … === …
非全等号 从左到右 … !== …
9 按位与 从左到右 … & …
8 按位异或 从左到右 … ^ …
7 按位或 从左到右 … | …
6 逻辑与 从左到右 … && …
5 逻辑或 从左到右 … || …
4 条件运算符 从右到左 … ? … : …
3 赋值 从右到左 … = …
… += …
… -= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2 yield 从右到左 yield …
yield* 从右到左 yield* …
1 展开运算符 n/a ... …
0 逗号 从左到右 … , …
时间: 2024-12-25 18:09:21

javascript中运算符的优先级的相关文章

慕课网-安卓工程师初养成-3-9 Java中运算符的优先级

来源 http://www.imooc.com/code/1315 所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低.譬如,x = 7 + 3 * 2  得到的结果是 13 “先乘后加”嘛! PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理.例如: 分析:小括号优先级最高,因此 1. 执行 a + 18 ,结果为 30 2. 执行( a + 18 ) % 4 取模,结果为

javascript中运算符有哪些? 他们的优先级 呢?

一元操作符 ++, -- + -(正负)逻辑操作符 ! && ||基本运算符 +, -, *, /, %关系操作符 >, <, >=, <=, ===, ==, !=, !==条件操作符 (三元运算符) ? :赋值运算符 +=, -=, *=, /=, %= =逗号运算符 , 1.11 运算符优先级1 () 2 !.-(负数).++.-- (正数省略+)(一元运算)3 *./.% 4 +.- (加,减)(二元运算)5 <.<=.<.>= (一

javascript中&amp;&amp;运算符和||运算符的使用

前言 我们在前端开发中,&&运算符和||运算符是使用率和频繁度比较高的,&&运算符和||运算符的功能特别强大,想成为一名优秀的前端工程师,&&运算符和||运算符是必不可少的,但是很多前端工程师(刚入门的小白[包括小编本身])对于&&运算符和||运算符的使用率极为低下,之前小编在学校开发一些项目的时候根本就没有用到过,因为我们已经被传统概念束缚了.我们对于&&运算符和||运算符的理解是这样的: &&运算符 &am

js中运算符的优先级

运算符 描述 . [] () 字段访问.数组下标.函数调用以及表达式分组 ++ -- - ~ ! delete new typeof void 一元运算符.返回数据类型.对象创建.未定义值 * / % 乘法.除法.取模 + - + 加法.减法.字符串连接 << >> >>> 移位 < <= > >= instanceof 小于.小于等于.大于.大于等于.instanceof == != === !== 等于.不等于.严格相等.非严格相等 &

PHP中运算符的优先级

从高到低 运算符 类型 () 括号 ++ -- 自增/自减 ! 逻辑 * / % 算术 + - . 算术和字符串 << >> 按位 < <=  > => 比较 ==  != ====  !== 比较 & 按位(和引用) ^ 按位 | 按位 && 逻辑 || 逻辑 ?: 三元 = += *= .= %= &= != ^=  <<= >>= 赋值 and 逻辑 xor 逻辑 or 逻辑

java中运算符的优先级

Java基础---Java中运算符优先级(十六)

Java中运算符的优先级 所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低.譬如,x = 7 + 3 * 2  得到的结果是 13 "先乘后加"嘛! PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理.例如: 分析:小括号优先级最高,因此 1. 执行 a + 18 ,结果为 30 2. 执行( a + 18 ) % 4 取模,结果为 2 3. 执行 a * ( (

[c语言]运算符的优先级与结合性

c语言中运算符的优先级和结合性常常被人混淆一谈,本文目的在于简单谈谈两者的区别.本文举几个简单的例子说明,这些运算符也特别常用. 首先要明白的是:优先级决定表达式中各种不同的运算符起作用的优先次序:而结合性则在相邻的运算符的具有同等优先级时,决定表达式的结合方向. [赋值运算符“=”] 对于赋值运算符来说,常会用到的是连续赋值的表达式.比如“a=b=c”. 这里的变量b的两边都是赋值运算,优先级当然是相同的,那么应该怎么理解这个表达式呢?我们知道,赋值表达式具有“向右结合”的特性,这就表示这个表

(4)javascript的运算符以及运算符的优先级

                                运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为算术运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符等. ( 图片来自于W3School离线手册) 算术运算符案例: <!doctype html> <head> <meta http-equiv="content-type" content="