Javascript if语句的语法和运算符优先级

Javascript if语句的语法和运算符优先级,javascript,if-statement,syntax,conditional,Javascript,If Statement,Syntax,Conditional,if语句的parens究竟是什么 如果我有: if(setX(), x === 5) 这是否被解释为: if((setX(), x) === 5) // which is the same as: setX(); if(x === 5) if((setX()), (x === 5)) 还是会被解读为: if((setX(), x) === 5) // which is the same as: setX(); if(x === 5) if((setX()), (x === 5)) (这

if语句的parens究竟是什么

如果我有:

if(setX(), x === 5)
这是否被解释为:

if((setX(), x) === 5) // which is the same as:
setX(); if(x === 5)
if((setX()), (x === 5))
还是会被解读为:

if((setX(), x) === 5) // which is the same as:
setX(); if(x === 5)
if((setX()), (x === 5))
(这基本上是一样的,但我仍然对语法感到好奇。)

逗号有

  • 将首先计算setX()
  • x==5
    将在第二时间进行计算
  • if
    语句检查
    x==5
逗号具有以下含义:

  • 将首先计算setX()
  • x==5
    将在第二时间进行计算
  • if
    语句检查
    x==5
逗号具有以下含义:

  • 将首先计算setX()
  • x==5
    将在第二时间进行计算
  • if
    语句检查
    x==5
逗号具有以下含义:

  • 将首先计算setX()
  • x==5
    将在第二时间进行计算
  • if
    语句检查
    x==5

逗号运算符计算其两个操作数并返回右操作数的值。因此,if语句将是在setX()函数之后执行的x==5测试的结果


然而,这是否是一种好的编程风格还有待讨论……:-)

逗号运算符计算其两个操作数并返回右操作数的值。因此,if语句将是在setX()函数之后执行的x==5测试的结果


然而,这是否是一种好的编程风格还有待讨论……:-)

逗号运算符计算其两个操作数并返回右操作数的值。因此,if语句将是在setX()函数之后执行的x==5测试的结果


然而,这是否是一种好的编程风格还有待讨论……:-)

逗号运算符计算其两个操作数并返回右操作数的值。因此,if语句将是在setX()函数之后执行的x==5测试的结果


然而,这是否是一种好的编程风格还有待讨论……:-)

在这些括号内发生了3件事,顺序如下:

  • 函数调用
  • 平等比较
  • 逗号运算符
  • 逐步采取的代码:

    // setup
    function setX(){
      return 3;
    }
    x = 4;
    
    // steps
    if (setX(),x === 5)
    // evaluate function call
    if (3,4 === 5)
    // evaluate equality comparison
    if (3,false)
    // evaluate comma operator
    if (false)
    // jump to the appropriate code branch
    

    参考资料:

    这些括号内发生了3件事,顺序如下:

  • 函数调用
  • 平等比较
  • 逗号运算符
  • 逐步采取的代码:

    // setup
    function setX(){
      return 3;
    }
    x = 4;
    
    // steps
    if (setX(),x === 5)
    // evaluate function call
    if (3,4 === 5)
    // evaluate equality comparison
    if (3,false)
    // evaluate comma operator
    if (false)
    // jump to the appropriate code branch
    

    参考资料:

    这些括号内发生了3件事,顺序如下:

  • 函数调用
  • 平等比较
  • 逗号运算符
  • 逐步采取的代码:

    // setup
    function setX(){
      return 3;
    }
    x = 4;
    
    // steps
    if (setX(),x === 5)
    // evaluate function call
    if (3,4 === 5)
    // evaluate equality comparison
    if (3,false)
    // evaluate comma operator
    if (false)
    // jump to the appropriate code branch
    

    参考资料:

    这些括号内发生了3件事,顺序如下:

  • 函数调用
  • 平等比较
  • 逗号运算符
  • 逐步采取的代码:

    // setup
    function setX(){
      return 3;
    }
    x = 4;
    
    // steps
    if (setX(),x === 5)
    // evaluate function call
    if (3,4 === 5)
    // evaluate equality comparison
    if (3,false)
    // evaluate comma operator
    if (false)
    // jump to the appropriate code branch
    

    参考:

    为什么要在条件中加逗号?或者它只是一个代码示例?为什么要在条件中加逗号?或者它只是一个代码示例?为什么要在条件中加逗号?或者它只是一个代码示例?为什么要在条件中加逗号?或者它只是一个代码示例?