|
主题: 我是刚学javascript,如何理解++和--呢?
|
 xiaodan
职务:普通成员
等级:2
金币:2.5
发贴:330
注册:2002/3/21 22:07:18
|
#12003/12/23 18:44:25
<script language="javascript"> <!-- var person1=4; var person2=++person1; var person3=2; var person4=--person3; document.write(person1,"<br>"); document.write(person2,"<br>"); document.write(person3,"<br>"); document.write(person4,"<br>"); //--> </script> 为什么输出 5 5 1 1 呢??
《房地产PSD分层素材库》12DVD100元一套! 电子目录地址
|
 =ridincal=
职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
|
#22003/12/23 19:02:12
++和--都属于单目操作符(操作数只有一个),而单目操作符通常分为前缀操作符和后缀操作符。++和--在分别作为前缀和后缀操作符时是有区别的,主要体现在操作符和操作数的优先级上。 作前缀时,先执行运算然后返回结果;做后缀时,先返回操作数再对操作数进行运算。 例如: n=0;m=0; n=++m 和 n=m++的运算结果m都是1,因为最终m都被递增了,但n却不一样——前者为1后者为0,因为n=++m是先对m递增再返回结果,而n=m++是先返回m再对m递增。 不知道说清楚了没有……
|
 =ridincal=
职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
|
#32003/12/23 19:05:02
可以将你的代码焕为:
<script language="javascript">
<!--
var person1=4;
var person2=person1++;
var person3=2;
var person4=person3--;
document.write(person1,"<br>");
document.write(person2,"<br>");
document.write(person3,"<br>");
document.write(person4,"<br>");
//-->
</script>
再试试。
|
 浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
注册:2001/11/19 12:41:09
|
#42003/12/23 21:38:52
够清楚,我喜欢:No one can stop you except yourself.
|
 xiaodan
职务:普通成员
等级:2
金币:2.5
发贴:330
注册:2002/3/21 22:07:18
|
#52003/12/23 23:29:19
n=0;m=0; n=++m 和 n=m++的运算结果m都是1,因为最终m都被递增了,但n却不一样——前者为1后者为0,因为n=++m是先对m递增再返回结果,而n=m++是先返回m再对m递增。 不明白大哥的意思啊??
《房地产PSD分层素材库》12DVD100元一套! 电子目录地址
|
 =ridincal=
职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
|
#62003/12/24 9:37:14
倒~这样也不行?嗯……  m=0; ++m先对m递增,m变为1,然后返回m的值也就是1; m++先返回m的值也就是0(这是还没有递增)然后对m递增,m变为1,明白?
|
 vickie_5d
职务:普通成员
等级:3
金币:2.0
发贴:946
注册:2003/5/23 12:33:46
|
#72003/12/24 19:39:07
咦~~才发现啊~~ JS语言好像和C语言有些相似类~~~  (偶没学过JS啊~~~) 不过看到ridincal写的语法,和C有些相似滴~~
|
 =ridincal=
职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
|
#82003/12/24 19:57:13
vickie在上个帖子中说 引用: 咦~~才发现啊~~
JS语言好像和C语言有些相似类~~~  (偶没学过JS啊~~~) 不过看到ridincal写的语法,和C有些相似滴~~
是的,很多地方很相似
|
 vickie_5d
职务:普通成员
等级:3
金币:2.0
发贴:946
注册:2003/5/23 12:33:46
|
#92003/12/25 20:23:02
呵呵~~~有些怀念C语言类~~ 还是在上大学的时候学习的~~~
|
 哲风
职务:普通成员
等级:1
金币:0.0
发贴:67
注册:2003/2/24 19:01:19
|
#102004/1/3 19:10:23
<script language="javascript"> <!-- var person1=4; var person2=person1++; var person3=2; var person4=person3--; document.write(person1,"<br>"); document.write(person2,"<br>"); document.write(person3,"<br>"); document.write(person4,"<br>"); //--> </script>
作前缀时,先执行运算然后返回结果;做后缀时,先返回操作数再对操作数进行运算。(这句话很关键!!!) --------------------------------------------------------------------------------------------对不对? 5 4 1 2
|
 =ridincal=
职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
|
|
 loqz
职务:普通成员
等级:1
金币:0.0
发贴:9
注册:2003/8/15 14:05:57
|
#122004/1/7 12:46:39
如果你有学过别的编程语言就会明白这其中的意思了 ++AA,代表在执行这条语句之前AA己经加上1了 AA++,代表在执行这条语句之后AA才加上1 反之——的效果也是一样的
|
 康夫
职务:普通成员
等级:5
金币:3.0
发贴:3311
注册:2002/8/7 1:00:31
|
#132004/1/10 10:52:41
讲得很清楚啊,谢谢,又学了一招!
|