JS运算的优先级
汇总表
下面的表将所有运算符按照优先级的不同从高到低排列。
优先级 | 运算类型 | 关联性 | 运算符 |
---|---|---|---|
20 | 圆括号 |
n/a | ( … ) |
19 | 成员访问 |
从左到右 | … . … |
需计算的成员访问 |
从左到右 | … [ … ] |
|
new (带参数列表) |
n/a | new … ( … ) |
|
函数调用 | 从左到右 | … ( … ) |
|
18 | new (无参数列表) | 从右到左 | new … |
17 | 后置递增(运算符在后) | n/a | … ++ |
后置递减(运算符在后) | n/a | … -- |
|
16 | 逻辑非 | 从右到左 | ! … |
按位非 | 从右到左 | ~ … |
|
一元加法 | 从右到左 | + … |
|
一元减法 | 从右到左 | - … |
|
前置递增 | 从右到左 | ++ … |
|
前置递减 | 从右到左 | -- … |
|
typeof | 从右到左 | typeof … |
|
void | 从右到左 | void … |
|
delete | 从右到左 | delete … |
|
15 | 幂 | 从右到左 | … ** … |
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 | 逗号 | 从左到右 | … , …
|
JS运算的优先级的更多相关文章
- js运算浮点数
在js中做小数:9.3+0.3会发现,得到的结果并不是9.6,而是9.600000000000001.这是为什么? Javascript采用了IEEE-745浮点数表示法,这是一种二进制表示法,可以精 ...
- js运算符的优先级
自上向下优先级降低 运算符 描述 . [] () 字段访问.数组下标.函数调用以及表达式分组 ++ -- - ~ ! delete new typeof void 一元运算符.返回数据类型.对象创建. ...
- python学习之运算表达式优先级
python中,有变量.值和运算符参与的语句叫做表达式. 比如: #字符串表达式 "hello" #运算表达式 + #赋值表达式 test = "hello" ...
- 对于JS == 运算的一些理解
声明:本文是摘自一篇文章,放在这只为做为一个笔记能更好学习. 大家知道,==是JavaScript中比较复杂的一个运算符.它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性” ...
- js中运算符优先级问题
其实事情是这样的,最近看到不少朋友讨论一道据说不知道哪儿的笔试题目,题目如下: var a = {n:1}; var b = a; a.x = a = {n:2}; 请写出a.x的值. 当然通过运行, ...
- mathjs,math.js解决js运算精度问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js运算【按位非】~
这个运算符有点意思:按位非[~] 先来几个例子: ~undefined: -1 ~false: -1 ~true: -2 ~10:-11 找出规律了吧~~ 再说一下运用场景: 之前判断字符串是否存在是 ...
- 解决js 运算 精度缺失
github地址: https://github.com/MikeMcl/big.js
- Python中字符运算的优先级
表1-2 运算符优先级 运算符 描述 lambda Lambda表达式 or 布尔“或” and 布尔“与” not x 布尔“非” in,not in 成员测试 is,is not 同一性测试 &l ...
随机推荐
- Ubuntu时间管理方法
1. date 命令主要用于显示以及修改系统时间 2. hwclock 命令用于查看设置硬件时间,以及同步硬件时间与系统时间 # 显示硬件时间hwclock # 设置硬件时间hwclock -set ...
- UOJ#449 喂鸽子
题意:有n个鸽子,你每秒随机喂一只鸽子,每只鸽子吃k次就饱了.求期望多少秒之后全饱了.n <= 50, k <= 1000. 解:有两种做法.一种直接DP的n2k做法在这.我用的是Min- ...
- vue.js_01_vue.js的入门
1.什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于 ...
- utils03_将本地仓库推送到gitHub的2种方式
1.使用ssh连接方式 创建一个新的仓库 复制SSH 配置连接属性 完成推送 刷新hdhRepository2仓库 2.使用HTTPS连接方式 创建一个新的仓库 复制HTTPS 配置连接属性 第一次推 ...
- Linux 命令之head, tail, tr, sort, uniq, grep
head [filename] head -n 11 [filename] -> First 11 lines head -c 20 [filename] -> First 20 char ...
- mysql基本笔记之二
1.查看当前编码 show variables like '%char%' 2.修改user表中id=1的name 为 A where后面是条件,就是定位 3.符号 > //大于符号 < ...
- Scrapy的Request和Response对象
一.Request 发送一个请求,参数如下: url :request对象发送请求的url callback :在下载器下载完相应的数据后执行的回调函数 method :请求方法,默认为get hea ...
- Spring Cloud Eureka集群配置及注意事项(Greenwich版本)
Spring Cloud Eureka集群配置及注意事项(Greenwich版本) 一·概述 Spring Cloud Netflix Eureka 是一个提供服务注册与发现的套件.服务提供者只需要将 ...
- 洛谷P4244 [SHOI2008]仙人掌图 II
传送门 首先不考虑带环的仙人掌,如果只是一棵普通的树,可以通过dp求每棵子树中的最长链和次长链求树的直径. 那么如果dfs的时候遇到了环,应该用环上的两点挂着的最长链加上两点间的距离来更新树的直径,并 ...
- Java 23 种设计模式的分类和功能
设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路.它不是语法规定,而是一套用来提高代码可复用性.可维护性.可读性.稳健性以及安全性的解决方案. 设计模式 ...