JavaScript: 区分前缀和后缀 Increment/Decrement

JavaScript: Dividing Pre- and Postfix Increment/Decrement

这可能是个奇怪的问题,因为我没有想到具体的例子。我正在努力学习 JavaScript,在复习一些 material 时,我开始想知道是否有可能 increment/decrement 少于一 (1)。 换句话说,如果在某种情况下您需要将变量递增为“1”以外的值。例如。将变量 i 增加 0.5 而不是 1,for (var i = 0, i < 10.5, i++/2) {... 正如我所说,我没有具体的例子或需要这样做的理由。我只是好奇如果:

  1. 在JavaScript内合法吗?
  2. 这是真实场景中可能出现的情况吗?
  3. 如果是这样,这是正确的做法吗? different/better 如何通过小数 increment/decrement?

提前感谢您的回复!

How to increment number by 0.01 in javascript using a loop?

中遇到的问题不同

i++/2 是有效的语法,但它不会达到您的预期。

相反,表达式 i += 0.5i 递增 0.5 和 return 新值:

var i = 1
var x = (i += 0.5)

console.log(i) // 1.5
console.log(x) // 1.5

+=被称为addition assignment operator。请注意,表达式将 return 增加的值,而不是 i 更改前的值。换句话说,它的行为类似于 ++i,而不是 i++.

为了补充 Timo 的回答,我不建议在循环中使用小数增量,因为它会导致舍入错误:

for (var i = 0; i <= 1; i += 0.1) {
    console.log(i);
}

// 0
// 0.1
// 0.2
// 0.30000000000000004
// 0.4
// 0.5
// 0.6
// 0.7
// 0.7999999999999999
// 0.8999999999999999
// 0.9999999999999999

相反,您可以使用整数增量,然后将值缩放到所需范围:

for (var i = 0; i <= 10; i++) {
    console.log(i / 10);
}

// 0
// 0.1
// 0.2
// 0.3
// 0.4
// 0.5
// 0.6
// 0.7
// 0.8
// 0.9
// 1