增量语法:两个加号不等于加一吗? (反应)

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++)实际上改变了变量。因此,在这些示例中,您在评估变量和分配变量时都在增加变量。