Javascript 如何解释=和===在同一行中?

Javascript 如何解释=和===在同一行中?,javascript,reactjs,Javascript,Reactjs,我遇到了这段代码 render: function() { var boards = []; for (var ii = 0; ii < this.props.numBoards; ii++) { // We can compare to state here so we're no longer always selecting the first board. var isSelected = ii === this.state.selected

我遇到了这段代码

render: function() {
    var boards = [];
    for (var ii = 0; ii < this.props.numBoards; ii++) {
      // We can compare to state here so we're no longer always selecting the first board.
      var isSelected = ii === this.state.selectedIndex;
      boards.push(
        <Board index={ii} selected={isSelected}  />

      );
    }
render:function(){
var板=[];
对于(var ii=0;ii
isSelected=ii==this.state.selectedIndex
如何执行


以下是完整的代码:

以下代码分两步执行

isSelected = ii === this.state.selectedIndex

1. ii === this.state.selectedIndex // comparator operator
2. isSelected = (result of step 1) // assignment operator

为清楚起见,该行应写为:

isSelected = (ii === this.state.selectedIndex);

这是因为
=
==
用于比较,语句
ii===This.state.selectedIndex
将返回
true
false
,因此
isSelected
将是
true
false
。就像
if(ii==This.state.selectedIndex)一样
只有在比较语句为真时才会执行其代码块。

你确定没有首先执行步骤2吗?@Tobyalen如果步骤2涉及步骤1的结果,如何首先执行步骤2?你是对的,这里的优先级列表修复标题………我知道它不会影响你的问题,但这不是有效的javascript。该部分从Nikhil开始,我们已经展示了这一行的含义。良好的编程实践可以做到以下几点来消除所有的混淆。
var isSelected=(ii==this.state.selectedIndex)
使用不需要的括号,会让人对发生了什么或打算做什么毫无疑问。我不认为有人会建议使用括号简洁地表示代码运行的顺序是噪音。我不希望我的团队中有一个认为不需要的编码员:)