【发布时间】:2020-01-13 10:49:23
【问题描述】:
谁能帮我解释一下为什么会这样
let one = 1;
function chg(arg) {
return arg++ // --> shouldn't this be similar to arg + arg? but it's outputting 1
}
console.log(one);
console.log(chg(one));
【问题讨论】:
-
如果
one是1。然后one++是1和one变成2。你要找的是++one。 -
如果你使用
return ++args;,它就可以工作。见stackoverflow.com/questions/3469885/… -
原始值作为值传递,而不是作为参考。
-
这段代码有两个问题。在另一个答案中说明了第一个具有后增量的。但是数据类型编号还有另一个问题。它是一个原始类型,您将它传递给一个实际上将值
one复制到arg的函数。arg在返回后递增,但立即被遗忘。one = chg(one)会与return ++arg一起改变你的价值
标签: javascript