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)
使用不需要的括号,会让人对发生了什么或打算做什么毫无疑问。我不认为有人会建议使用括号简洁地表示代码运行的顺序是噪音。我不希望我的团队中有一个认为不需要的编码员:)