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 发布文章使用:只允许注册用户才可以访问!


js 运算符的执行顺序的更多相关文章

  1. php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)

    php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...

  2. html和js,外部js 的下载执行顺序

    当用户开始访问,首先下载html资源和外部js资源,在chrome中显示的是html先下载,然后下载外部js,外部js的下载顺序安引用顺序,但是下载到达情况则视情况而定,接着才是图片和其他资源,但是要 ...

  3. js代码的执行顺序及运算

    代码执行顺序:从上往下,一行一行的执行(也叫一个模块一个模块的执行) 变量的提升(它不是变量的功能,而是浏览器的功能) js代码如何执行? js代码执行前,浏览器会给他一个全局的环境 叫window, ...

  4. Promise对象及它在js中的执行顺序

    关于Promise对象的学习及它的执行顺序 学习阮一峰老师的ES6入门后的记录 1.promise的定义 promise是一个对象,通常包裹着一个异步操作,promise对象提供一些接口的方法,返回一 ...

  5. JS中函数执行顺序的问题?

    作者:知乎用户链接:https://www.zhihu.com/question/23564807/answer/82996422来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  6. js各运算符的执行顺序

    本文原链接:https://www.sojson.com/operation/javascript.html https://www.jianshu.com/p/d569c6ca1060 JavaSc ...

  7. js编译和执行顺序

    JS是一段一段执行的(以<script>标签来分割),执行每一段之前,都有一个“预编译”,预编译干的活是:声明所有var变量(初始为undefined),解析定义式函数语句. 还有个关于 ...

  8. js判断的执行顺序

    js预编译是对每一个<script>标签片段进行的.预编译声明所有var变量(初始为undefined),解析定义式函数语句. 还有个关于 "window作用域下,a = 1和v ...

  9. js代码执行顺序问题

      前  言 LiuDaP 今天就给大家介绍一个特别基础的东西,javascript中函数的一点儿小知识(js代码的执行顺序),希望对大家有那么一点点帮助吧!!! 一.js--->单线程 严格意 ...

随机推荐

  1. Django 模型(数据库)-cmd下的操作

    Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py ...

  2. 什么是STP

    简介 了解STP 配置STP 相关信息 简介 STP(Spanning Tree Protocol)是运行在交换机上的二层破环协议,环路会导致广播风暴.MAC地址表震荡等后果,STP的主要目的就是确保 ...

  3. 深入理解 MySQL 索引底层原理

    https://mp.weixin.qq.com/s/qHJiTjpvDikFcdl9SRL97Q

  4. 两个list<Map<String,String>>放入一个list中

    // public static void main(String[] args) {// List<Map<String, String>> list2 = new Arra ...

  5. Python程序中#-*-coding: UTF-8 -*-的作用

    1.通常我们在pycharm中写程序的时候会加上#-*coding: UTF-8 -*- 如: #!/usr/bin/env python3#-*-coding: UTF-8 -*-#Author x ...

  6. Java——集合框架之Set&HashSet,HashMap,泛型,compareTo

    Set Set接口--数据存放无序,非常简单,主要呈现信息列表 Set接口存储一组唯一.无序的对象 HashSet是Set接口常用的实现类 Set接口不存在get方法 Iterator接口:表示对集合 ...

  7. Spring MVC—模型数据,转发重定向,静态资源处理方式

    Spring MVC处理模型数据 添加模型数据的方法 ModelAndView Map及Model SessionAttribute ModelAttribute Spring MVC转发和重定向 S ...

  8. Spark DataSource Option 参数

    Spark DataSource Option 参数 1.parquet 2.orc 3.csv 4.text 5.jdbc 6.libsvm 7.image 8.json 9.xml 9.1读选项 ...

  9. 区域之间PA、FortiGate内网互联专线、IPSec互备方案

    网络拓扑: 现状描述: 办公区和IDC之间有防火墙互联的点对点专线实现内网互通,现需要两地防火墙构建IPSec VPN作为专线的热备链路. 解决方案: 飞塔侧 1.按照阶段一.阶段二建立IPSec V ...

  10. 小心 Enum Parse 中的坑

    小心 Enum Parse 中的坑 Intro 最近使用枚举的时候,踩了一个小坑,分享一下,主要是枚举从 int 值转成枚举时可能会遇到 Sample 来看下面的示例: 首先定义一个枚举: publi ...