增量语法:两个加号不等于加一吗? (反应)
Increment syntax: two pluses ain't as plus one? (Reactjs)
为什么这个例子有效
showNext = () => {
const { current, total } = this.state;
this.setState({
current: current + 1 === total ? 0 : current + 1
});
};
而这个不是
showNext = () => {
const { current, total } = this.state;
this.setState({
current: current++ === total ? 0 : current++
});
};
这个 也不行
showNext = () => {
const { current, total } = this.state;
this.setState({
current: ++current === total ? 0 : ++current
});
};
因为 var +1
创建了一个新的变量,该变量被评估并保持 var
不变。
Post 和预增量(++var var++
)实际上改变了变量。因此,在这些示例中,您在评估变量和分配变量时都在增加变量。
为什么这个例子有效
showNext = () => {
const { current, total } = this.state;
this.setState({
current: current + 1 === total ? 0 : current + 1
});
};
而这个不是
showNext = () => {
const { current, total } = this.state;
this.setState({
current: current++ === total ? 0 : current++
});
};
这个 也不行
showNext = () => {
const { current, total } = this.state;
this.setState({
current: ++current === total ? 0 : ++current
});
};
因为 var +1
创建了一个新的变量,该变量被评估并保持 var
不变。
Post 和预增量(++var var++
)实际上改变了变量。因此,在这些示例中,您在评估变量和分配变量时都在增加变量。