在下面的例子一個JavaScript語言的問題
<!DOCTYPE html>
<meta charset="utf-8">
<title>Untitled Document</title>
<script>
var str = '11';
str = str++;
alert(str); // 11
</script>
爲什麼結果11
,而不是12
?
在這個例子中,結果是12
:
<!DOCTYPE html>
<meta charset="utf-8">
<title>Untitled Document</title>
<script>
var str = '11';
str++;
alert(str); // 12
</script>
爲什麼會這樣呢?
謝謝!
var str = 10;
var re = str++;
alert(re); // 10
alert(str); // 11
str
將返回10 re
第一,然後遞增str
自己11
但
var str = 10;
var str = str++;
alert(str); // 10
在這種情況下,str
回報10 str
第一,和那麼str
應該將str
自身增加到11.
但事實並非如此。任何人都可以解釋嗎?
謝謝!
然後 - 不要忘記 - 分配增量前的值,增量後,所以你最終又回到你開始的地方! :) – 2011-01-25 05:12:52
@Ken你說得對。 – Marcelo 2011-01-25 05:14:47