我發現了一本書,這ES6代碼:爲什麼ES6的默認參數值沒有給出想要的結果?
let value = 5;
function getValue() {
return value++;
}
function add(first, second = getValue()) {
return first + second;
}
console.log(add(1, 1)); // 2
console.log(add(1)); // 6
爲什麼運行console.log(add(1));
回報6的值,這意味着它走的是參數second
5雖然我的代碼明確規定了getValue
函數返回value++
- 這意味着它第一次運行時,getValue
函數應該返回6並且add
應該返回7.我在Firefox控制檯中運行此代碼 - 我錯過了什麼嗎?
它不適用於後綴表達式,這是因爲函數定義中的默認值。 –
@FarhadAzarbarzinniaz該函數返回後綴增量的結果?您的評論不正確。這正是原因。 – Li357
謝謝@AndrewLi,@LorenzoCatalano,@AbdullahDanyal幫助我理解。不過,我想知道後綴運算符的用法是什麼。是不是更好地默認爲前綴運算符,並根據是否希望數字從5或6開始更改'value'的值 – Mortz