JavaScript:划分前缀和后缀增量/减量

时间:2016-11-23 19:45:29

标签: javascript variables increment

这可能是一个奇怪的问题,因为我没有考虑具体的例子。我正在尝试学习JavaScript,在查看一些材料时,我开始想知道是否可以增加/减少小于一(1)。 换句话说,如果存在需要通过其他内容增加变量的情况&#34; 1&#34;。例如。将变量i递增0.5而不是1,for (var i = 0, i < 10.5, i++/2) {... 正如我所说,我没有特定的例子或理由需要这样做。我很好奇,如果:

  1. 在JavaScript中合法吗?
  2. 这可能会出现在真实场景中吗?
  3. 如果是这样,这是正确的做法,还是有一个 用分数来增加/减少的不同/更好的方法?
  4. 提前感谢您的任何回复!

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

    中遇到的问题不同的问题

2 个答案:

答案 0 :(得分:0)

i++/2是有效的语法,但它不会做你期望的事。

相反,表达式i += 0.5i增加0.5并返回新值:

&#13;
&#13;
var i = 1
var x = (i += 0.5)

console.log(i) // 1.5
console.log(x) // 1.5
&#13;
&#13;
&#13;

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

答案 1 :(得分:0)

要添加到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