• 你不知道的 JavaScript 系列中( 32 ) - 运算符的优先级


    JavaScript 中的 && 和 || 运算符返回它们其中一个操作数的值,而非 true 或 false。在一个运算符两个操作数的情况下这比较好理解:
    var a = 42;
    var b = "foo";
    a && b; // "foo"
    a || b; // 42
    那么两个运算符三个操作数呢?
    var a = 42;
    var b = "foo";
    var c = [1,2,3];
    a && b || c; // 'foo'
    a || b && c; // 42
    这说明 && 运算符先于 || 执行,而且执行顺序并非我们所设想的从左到右。原因就在于运 算符优先级。
    对 && 和 || 来说,如果从左边的操作数能够得出结果,就可以忽略右边的操作数。我们将 这种现象称为“短路”(即执行最短路径)。



    a ? b : c ? d : e;
    ? : 是右关联,它的组合顺序是以下哪一种呢?
    • a ? b : (c ? d : e)
    • (a ? b : c) ? d : e
    答案是a ? b : (c ? d : e)
    a && b || c ? c || b ? a : c && b : a
    其中? :运算符的优先级比&&和||高还是低呢?执行顺序是这样?
    a && b || (c ? c || (b ? a : c) && b : a)
    还是这样?
    (a && b || c) ? (c || b) ? a : (c && b) : a
    答案是后者。因为&&运算符的优先级高于||,而||的优先级又高于? :
  • 相关阅读:
    批量插入数据&自定义分页器
    ajax
    Django 多对多表关系的三种创建方式
    Django ORM之F与Q查询
    Django ORM跨表查询&聚合、分组查询
    Django ORM多表操作
    Django ORM单表操作常用字段
    HashMap的容量大小增长原理(JDK1.6/1.7/1.8)
    80端口被占用
    中级视频地址
  • 原文地址:https://www.cnblogs.com/wzndkj/p/14066094.html
Copyright © 2020-2023  润新知