console.log(in1()) 的輸出應該是 11 但為什么是 10?
function outer() {
let i = 10;
return function inner() {
return i ;
}
}
var in1 = outer();
console.log(in1());
uj5u.com熱心網友回復:
在此處參考https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Increment:
如果使用后綴,在運算元之后使用運算子(例如,x ),則遞增運算子遞增并回傳遞增前的值。
因此,后綴(即 x ;后綴,因為它出現在 之后)運算子僅在執行任何操作之前給出現有值。這就是為什么,當被呼叫時,給出存在的東西,而不是加法的結果。
因此,使用前綴運算子 x 來獲取值,同時仍然增加變數。
這同樣適用于遞減運算子。
uj5u.com熱心網友回復:
這是因為先使用i 回傳i,然后添加1到i. 如果你in1()第二次呼叫,你會看到 11、12 等等。嘗試使用 i。
uj5u.com熱心網友回復:
使用后綴語法時i ,在遞增之前回傳值。請改用前綴語法 i。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/384953.html
標籤:javascript
