2016-11-23 114 views
0

这可能是一个奇怪的问题,因为我没有具体的例子。我正在试图学习JavaScript,并在回顾一些材料的同时开始考虑是否可以递增/递减少于一(1)。 换句话说,如果有一种情况需要通过其他“1”来增加变量。例如。将变量i递增0.5,而不是1,for (var i = 0, i < 10.5, i++/2) {... 正如我所说的,我没有具体的例子或理由需要这样做。我只是好奇,如果:JavaScript:划分前缀和后缀增量/减量

  1. 它是合法的JavaScript?
  2. 这是可能出现在真实场景中的东西吗?
  3. 如果是这样,这是做到这一点的正确方法,或者是否有不同/更好的方法来增加/减少一个分数?

非常感谢您的回复!

不作为问题,同样的问题在经历How to increment number by 0.01 in javascript using a loop?

+0

的可能的复制(http://stackoverflow.com/questions/19290628/how-to-increment-number-by- 0-01-in-javascript-using-a-loop) – Mahi

回答

0

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

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

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

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

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

+0

谢谢蒂莫!只要我看到加法赋值运算符'+ =',我就知道你在说什么了。这使得看到写什么和写什么更有意义。此外,感谢您解释何时会增加,例如'++ i'与'i ++'相比。我仍然不习惯赋值运算符。我理解他们,但是我忘了他们,当我看到一个人时,我必须暂停一下,记住他们是如何运作的。 –

0

为了增加蒂莫的答案,我不建议在循环中使用分数增加的,因为它可以导致舍入误差:

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 

相反,你可以使用整数递增,然后缩放值在所需的范围:[?如何通过0.01在javascript使用循环递增数]

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