zoukankan      html  css  js  c++  java
  • 你不知道的 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
    答案是后者。因为&&运算符的优先级高于||,而||的优先级又高于? :
  • 相关阅读:
    ubuntu12.04下设置IPv6
    ubuntu下vncserver配置
    ubuntu12.04安装gerrit代码审核服务器
    Linux + Eclipse 配置交叉编译环境
    进程间通信基础
    ubuntu下搭建git服务器
    udev
    rpcgen的简单讲解及例子程序
    rpc简介、原理、实例-缘于difx
    windows下常用开源软件
  • 原文地址:https://www.cnblogs.com/wzndkj/p/14066094.html
Copyright © 2011-2022 走看看