小白,请教各位大佬!一个简单的JS函数,求结果解释十分感谢

functiona(){
varnum=0;
for(vari=0;i<10;i++){
num=num++;
}
console.log(num);
};
a();
为什么结果是0?
撒科打诨
浏览 228回答 2
2回答

凤凰求蛊

++在后,先赋值再自增;++在前,先自增再赋值functiona(){varnum=0;for(vari=0;i

呼如林

num++会将num自增,然后返回num原来的值。num=num++;将num原来的值(自增前的值,0)又赋值给了num,于是num=num++整体并没有改变num的值。关于评论里提到的赋值自增的顺序问题,还是去看标准吧。自增:LetlhsbetheresultofevaluatingLeftHandSideExpression.LetoldValuebe?ToNumber(?GetValue(lhs)).LetnewValuebetheresultofaddingthevalue1tooldValue,usingthesamerulesasforthe+operator(see12.8.5).Perform?PutValue(lhs,newValue).ReturnoldValue.可以看到num++,先完成了自增(第4步),然后才返回。赋值只能在拿到返回之后执行,自然是将旧值赋给(已经自增之后的)num了。注意这句话在不同的编程语言里可能会有不同的解释,不要混淆...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript