Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript变量不随时间间隔递增_Javascript_Setinterval_Unix Timestamp - Fatal编程技术网

Javascript变量不随时间间隔递增

Javascript变量不随时间间隔递增,javascript,setinterval,unix-timestamp,Javascript,Setinterval,Unix Timestamp,我试图每1秒增加一个值(在本例中是UNIX时间戳,但在本例中,它可能是任何旧的整数),但它拒绝这样做(它只是保持不变) 这是密码 // given integer starting point var tsmin=1332449260; setInterval(function(){ tsmin=tsmin++; console.info(ts); }, 1000); 为什么不直接使用tsmin++而不是tsmin=tsmin++的副作用呢?语句: tsmin = tsmin++;

我试图每1秒增加一个值(在本例中是UNIX时间戳,但在本例中,它可能是任何旧的整数),但它拒绝这样做(它只是保持不变)

这是密码

// given integer starting point
var tsmin=1332449260;
setInterval(function(){
   tsmin=tsmin++;
   console.info(ts);
}, 1000);

为什么不直接使用tsmin++而不是tsmin=tsmin++的副作用呢?

语句:

tsmin = tsmin++;
保证“tsmin”永远保持不变。变量之后的
++
运算符表示该表达式的值是增量之前的值。
=
运算符绑定的紧密度低于
++
,因此该过程是:

  • 获取“tsmin”的值
  • 增量“tsmin”
  • 将“tsmin”设置为步骤1中的值
  • 试试这个:

    var tsmin = 1332449260;
    setInterval(function() {
       console.info(tsmin);
       tsmin++;
    }, 1000);​
    

    这假设您希望1332449260作为第一个值在控制台中输出,如果您希望从1332449261开始,请移动
    tsmin++
    控制台信息(tsmin)之前

    问题来自于++tsmin和tsmin++之间的差异

    ++tsmin在执行下一步之前增加值,而tsmin++在单词后增加值。如果将行更改为:

    tsmin = ++tsmin
    
    它会起作用,因为在将其保存为新值之前,它现在正在递增。然而,即使此解决方案“有效”,您真正应该做的是:

    tsmin++
    

    如果只是这样递增,则无需设置tsmin。

    非常感谢!清晰的解释,好的例子和关于最佳实践的建议!
    tsmin++