zoukankan      html  css  js  c++  java
  • xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

    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(`
    +true =`, +true)
    
    
    // log(([][[]]+[])[]);
    
    
    // log((undefined)[0])
    // log((undefined)[1])
    
    log(+([]+{}));
    
    log([]+{});
    
    log(+[]);
    // 0
    log(!+[]);
    // true
    log(`
    !0 =`, !0);
    // true
    
    log(!![]);
    // true
    log(+!![]);
    // 1
    log(`
    +true =`, +true);
    // 1
    
    
    log(!+[]+!![]);
    // 2
    log(`
    true + 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
    字符串1
    标准类制作
    构造方法
    封装
    成员变量和局部变量
    类和对象的案例

    案例
    方法的参数传递
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/13861328.html
Copyright © 2011-2022 走看看