在下面的例子一个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