js 运算符的执行顺序

js 运算符优先级

Operator Precedence

下表从最高(21)到最低(1)优先顺序排列

left-to-right

从左到右 / 先左后右

right-to-left

从右到左 / 先右后左

逻辑非

一元加减

一元加 / 一元减

Precedence & Associativity

优先级 & 关联性

let a, b;

a = b = 5;
// same as writing
a = (b = 5);

a || (b * c); // evaluate `a` first, then produce `a` if `a` is "truthy"
a && (b < c); // evaluate `a` first, then produce `a` if `a` is "falsy"
a ?? (b || c); // evaluate `a` first, then produce `a` if `a` is not `null` and not `undefined`
a?.b.c; // evaluate `a` first, then produce `undefined` if `a` is `null` or `undefined`

demo


"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
* @created 2020-10-01
* @modified
*
* @description
* @difficulty Easy Medium Hard
* @complexity O(n)
* @augments
* @example
* @link
* @solutions
*
* @best_solutions
*
*/ const log = console.log; // console.log(([][[]]+[])[+!![]]+([]+{})[!+[]+!![]]); // log(([][[]]+[])[+!![]]+([]+{})[!+[]+!![]]); log([]);
log([[]]);
log(+[]); log([][[]]); log(([][[]]+[])); log([+!![]]);
log(!![]);
log(+!![]); log(`\n+true =`, +true) // log(([][[]]+[])[]); // log((undefined)[0])
// log((undefined)[1]) log(+([]+{})); log([]+{}); log(+[]);
// 0
log(!+[]);
// true
log(`\n!0 =`, !0);
// true log(!![]);
// true
log(+!![]);
// 1
log(`\n+true =`, +true);
// 1 log(!+[]+!![]);
// 2
log(`\ntrue + true =`, true + true);
// 2
log([!+[]+!![]]);
// [2] log(``, +([]+{})[!+[]+!![]])
// NaN
log(``, ([]+{})[!+[]+!![]])
// "b"

refs

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence



xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


最新文章

  1. SQL Server 2008 R2——使用FOR XML PATH实现多条信息按指定格式在一行显示
  2. 使用git提交内容到网盘
  3. PostgreSQL Replication之第十章 配置Slony(5)
  4. PythonOCC 3D图形库学习—创建立方体模型
  5. java基础进阶:SQL的运用
  6. C99新特性
  7. JPush极光推送 Java调用服务器端API开发
  8. Ubuntu Docker 安装和配置 GitLab CI 持续集成
  9. 【学习】js学习笔记:数组(二)
  10. Java注解(Annotation):请不要小看我!
  11. 二、自动化测试平台搭建-搭建jango环境
  12. deepfake-faceswap第一篇论文-2016摘要
  13. 21备忘录模式Memento
  14. Wamp修改端口
  15. Docker学习笔记之docker-save vs docker-export vs docker-commit
  16. react-native 安卓支持 gif动态图
  17. CodeFirst Update-Database 出现对象&#39;DF__**__**__**&#39; 依赖于 列&#39;**&#39;。
  18. requirejs初体验
  19. Unity VR编辑器――如上帝般创建VR内容,Project Soli google用雷达识别手势体积相当于一张 Mini SD 内存卡
  20. MongoDB(课时6 关系查询)

热门文章

  1. python生成器 递归
  2. mysql主从复制安装配置
  3. maven project builder fails when running on jdk&gt;9
  4. memset 在c++中使用细节注意
  5. 初识 Nginx服务配置
  6. MySql命令,吐血整理的Mysql,实话,真的吐血
  7. 将插件绑定在某个phase执行,推送镜像
  8. 一块网卡配2IP地址
  9. Aruba无线控制器常用操作
  10. 安装kettle