JavaScript运算符优先级和关联性

时间:2014-12-26 20:28:05

标签: javascript operators

在JavaScript中

var x = (5 >= 9 >= 0);
console.log(x);
// returns true

该声明中发生了什么以及输出的原因是什么?

2 个答案:

答案 0 :(得分:3)

Operator precedence and Associativity chart解释了发生了什么。表达式按以下顺序计算:

/* 1 */ x = (5 >= 9) >= 0;
/* 2 */ x = false >= 0;
/* 3 */ x = true;    

说明:

  1. >=左关联,首先评估5到9之间的运算符。
  2. >=使用抽象比较,将布尔值转换为数字,即false变为0(ref)。
  3. 最终结果为true

答案 1 :(得分:3)

true语句被理解为与零不同 ...因此,false 等于零 ......

声明:

(5>=9>=0)

变成

(false >= 0)

因为5低于9.然后,如果false等于零,则结果为 true

修改

正如这里所解释的(All falsey values in JavaScript),零是javascript中的虚假值......