<分区>
我知道浮点变量在处理 0.1、0.2、0.3 等时需要变通办法,但这似乎很不寻常?
for(var i=0;i<10;i=i+1){
console.log("before timeout" + i/10); //returns 0.1 0.2 0.3 etc
setTimeout(function(){
console.log("after timeout" + i/10); //returns 1 1 1 etc
},1000);
}
<分区>
我知道浮点变量在处理 0.1、0.2、0.3 等时需要变通办法,但这似乎很不寻常?
for(var i=0;i<10;i=i+1){
console.log("before timeout" + i/10); //returns 0.1 0.2 0.3 etc
setTimeout(function(){
console.log("after timeout" + i/10); //returns 1 1 1 etc
},1000);
}
最佳答案
变量“i”始终为“10”,因为超时将在 for 循环后调用。所以你总是得到整数因为你把它除以 10
这样做是为了你好:)
for(var i=0;i<10;i=i+1){
console.log("before timeout" + i/10);
setTimeout(function(i){
console.log("after timeout" + i/10);
},1000, i);
}
关于javascript - 传递给超时函数时小数点被删除了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417282/