【问题标题】:Difference between - var+1 and var++- var+1 和 var++ 的区别
【发布时间】:2018-08-02 09:34:26
【问题描述】:

我想知道,为什么 int++ 不工作,但 int+1 工作。有人知道为什么在我的示例中会发生这种情况?有什么区别吗?

function retryFunction(something, count) {
     if (!count) {
         count = 0;
     }

     console.log(typeof count);
     console.log(count);

     if (count < 5) {
          return setTimeout(function () {
              //working
              retryFunction(something, count+1);

              //not working
              retryFunction(something, count++);
          }, 1000)
      }
}

retryFunction(null);

【问题讨论】:

标签: javascript node.js int


【解决方案1】:

表达式count + 1 将1 添加到count 并“返回”其结果。

表达式count++返回count的当前值,然后将1添加到count(从而修改变量值,但在使用旧值之后)。

【讨论】:

  • count + 1也可以写成++count
  • @semanser 除了它不做同样的事情。 count + 1 不会修改 count,而 ++count 会。
  • 您可以将此添加为您的答案。这也是TIO 上的一个小例子,它证明了这一点。
  • @Some程序员老兄一般是的,但不是在OP的情况下。
【解决方案2】:

前缀增量与后缀增量运算符。在您的示例上下文中松散地说,count++ 说“使用原始值调用函数,然后递增并存储在变量中”。但是,如果您要使用 ++count,则表示“增加变量并将结果发送给函数。”

注意。虽然 ++count 会“工作”,但您真正想要的是 count + 1;在这种情况下将结果存储在传递的参数中是没有意义的。

【讨论】:

    猜你喜欢
    • 2021-05-07
    • 2011-09-04
    • 2020-11-06
    • 2023-03-03
    • 2013-06-28
    • 2019-09-21
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多