首页 > 其他分享 >JS-运算符的优先级

JS-运算符的优先级

时间:2024-04-16 15:01:19浏览次数:24  
标签:优先级 从左到右 JS 运算符 从右到左 按位 new

一、运算符

运算符汇总表

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

请注意,下表中故意不包含展开语法——原因可以引用 Stack Overflow 上的一个回答,“展开语法不是一个运算符,因此没有优先级。它是数组字面量和函数调用(和对象字面量)语法的一部分。”

优先级 运算符类型 结合性 运算符
19 分组 n/a(不相关) ( … )
18 成员访问 从左到右 … .
需计算的成员访问 从左到右 … [ … ]
new(带参数列表) n/a new … ( … )
函数调用 从左到右 … ( … )
可选链(Optional chaining) 从左到右 ?.
17 new(无参数列表) 从右到左 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 逗号 / 序列 从左到右 … , …

 

 

标签:优先级,从左到右,JS,运算符,从右到左,按位,new
From: https://www.cnblogs.com/yangchin9/p/18138165

相关文章

  • js--参数归一化-日期格式化函数
    //参数归一化///*日期时间格式化date:日期时间isFillZero:是否需要0补位*/functionformate(date,formater,isFillZero=false){formater=_formatNormalize(formater)function_isFillZero(value,length){if(isFillZero){return(value+'').p......
  • 【THREE.js源码】Geometry和Attribute
    BufferAttributeBufferGeometryInstancedBufferAttributeInstancedBufferGeometryInstancedInterleavedBufferInterleavedBufferInterleavedBufferAttributeTHREE.js中有一个重要的类,Mesh,即网格体对象。这个网格体对象在构造的时候需要传入两个变量,geometry和material,geo......
  • JS混淆工具简介(一)---UglifyJS
    github:https://github.com/mishoo/UglifyJS/工具:https://lisperator.net/uglifyjs/简要介绍  UglifyJS是基于NodeJS的Javascript语法解析/压缩/格式化工具,它支持任何CommonJS模块系统的Javascript平台。  UglifyJS通过解析重新生成JS代码的语法树。该工具缩短变量......
  • fastjson 1.2.24 反序列化导致任意命令执行漏洞复现
    前置知识今天复现了常见的fastjson反序列化漏洞,了解该漏洞需要一些前置的知识,这里总结一下:Fastjsonfastjson是一个Java的库,可以将Java对象转换为Json字符串,也可以将Json字符串转换为Java对象,Fastjson也可以操作一些Java中的对象。JNDIJNDI(JavaNamingandDirectoryInterf......
  • 前端开发框架的选择-Vue.js
    Vue.js秉持简约哲学,通过精炼的代码实现功能——它专注于为Web应用开发提供核心工具,而非让冗余特性成为负担。这种简约设计思路使得代码更加明晰,易于阅读和维护。长远看来,Vue.js的简约特性使得项目运作更为流畅。无论是小型网站还是大型单页应用,Vue.js都能轻松应对——它并非万金......
  • JSnaughty: Recovering Clear, Natural Identifiers from Obfuscated JS Names
    发表:FSE,2017,卡内基梅隆大学,BogdanVasilescu团队(https://bvasiles.github.io/);加利福尼亚大学戴维斯分校,CaseyCasalnuovo团队(https://caseycas.github.io/)和PremkumarDevanbu团队(https://web.cs.ucdavis.edu/~devanbu/)(https://cmustrudel.github.io/projects/jsnaughty/),开源......
  • 30 天精通 RxJS (20):Observable Operators - window, windowToggle, groupBy
    前几天我们讲完了能把HigherOrderObservable转成一般的Observable的operators,今天我们要讲能够把一般的Observable转成HigherOrderObservable的operators。其实前端不太有机会用到这类型的Operators,都是在比较特殊的需求下才会看到,但还是会有遇到的时候。Op......
  • Python - PEP572: 海象运算符
    海象运算符PEP572的标题是「AssignmentExpressions」,也就是「赋值表达式」,也叫做「命名表达式」不过它现在被广泛的别名是「海象运算符」(TheWalrusOperator),因为:=很像海象赋值中间变量未使用海象运算符pattern=re.compile('s')data='ss'match=pattern.mat......
  • 《Vue.js设计与实现》 第七章 渲染器的设计
    7.1渲染器与响应系统的结合最简单的渲染器及其使用//渲染器functionrenderer(domString,container){container.innerHTML=domString}//使用letcount=1renderer(`<h1>${count}</h1>`,document.getElementById('app'))渲染器与响应式系统结合constcount......
  • 如何使用React.js从头开始构建TODO应用
    如果你是React.js的新手,并且渴望投身应用程序开发,那么你来对地方了!跟着我一起通过这个教程,从头开始构建一个基本的TODO应用程序。(本文视频讲解:java567.com)TODO应用对初学者的重要性TODO应用作为初学者掌握新编程语言或框架基础知识的理想项目。它为学习基本概念提供了实际的上......