Console.log() 影响表达式结果?
Console.log() affects expression result?
我在 JavaScript 中遇到了 console.log()
的奇怪行为。这可能一点也不奇怪,但我还是第一次看到。大约 console.log()
将表达式的结果加倍。
我正在做的是:我按下应该添加数字的按钮。我按“3”、“2”和“1”。所以我应该看到“321”。这就是我得到的,当它没问题的时候。
一切正常时的情况:
但是当我取消注释较低的 console.log()
(在第 595 行)时,当我按下相同的按钮时,结果为“332211”。
我不明白为什么将第 593 行的表达式提供给 console.log()
会影响该表达式的结果?我的意思是,我认为我应该在控制台中看到此表达式的结果,但既不会在控制台中翻倍,也不会在页面中翻倍。
为什么 console.log()
(第 595 行)影响第 593 行的表达式结果?
因为您正在其调用中更新 currentInput.value
。如果你不希望这种情况发生,你应该更换
console.log('Amount of money:', currentInput.value += ev.target.innerHTML);
和
console.log('Amount of money:', currentInput.value + ev.target.innerHTML);
(注意 +=
被替换为 +
)。
我在 JavaScript 中遇到了 console.log()
的奇怪行为。这可能一点也不奇怪,但我还是第一次看到。大约 console.log()
将表达式的结果加倍。
我正在做的是:我按下应该添加数字的按钮。我按“3”、“2”和“1”。所以我应该看到“321”。这就是我得到的,当它没问题的时候。
一切正常时的情况:
但是当我取消注释较低的 console.log()
(在第 595 行)时,当我按下相同的按钮时,结果为“332211”。
我不明白为什么将第 593 行的表达式提供给 console.log()
会影响该表达式的结果?我的意思是,我认为我应该在控制台中看到此表达式的结果,但既不会在控制台中翻倍,也不会在页面中翻倍。
为什么 console.log()
(第 595 行)影响第 593 行的表达式结果?
因为您正在其调用中更新 currentInput.value
。如果你不希望这种情况发生,你应该更换
console.log('Amount of money:', currentInput.value += ev.target.innerHTML);
和
console.log('Amount of money:', currentInput.value + ev.target.innerHTML);
(注意 +=
被替换为 +
)。