为了账号安全,请及时绑定邮箱和手机立即绑定

把mynum=mynum-1换成mynum=mynum--系统就会崩溃

 把mynum=mynum-1换成mynum=mynum--系统就会崩溃

正在回答

8 回答

这里出现无限循环,是因为这是一个自己等于自己副本的赋值方式,

原来带后置型递增(减)符的变量是在包含它的语句被求值之后才去执行,

这里语句i=i++,语句被求值刚好是i,被求值i出来后,i的运算就已经执行完毕,后面的递增()执行直接被跳过了;

i在下一次循环中开始时候,值没有变化,就不能跳出循环。

0 回复 有任何疑惑可以回复我~
#1

qq_谜离_03319966 提问者

非常感谢!
2016-10-31 回复 有任何疑惑可以回复我~

还有你把--a,b--改写成a=--a,b=b--试试,不一样的

0 回复 有任何疑惑可以回复我~

一次运算可能i++没有意义但是要是循环就有意义了,就被赋值了

0 回复 有任何疑惑可以回复我~

这个6啊,系统真的崩溃了

0 回复 有任何疑惑可以回复我~

在javascript中遇到这2个家伙之后一直无法理解

在百度查阅了很多文章

大致上都是说可以分开看成如下:

i=i++ 等于(i=i;i=i+1)意识是先赋值 在做运算

i=++I 等于(i=i+1;i=i)意识是做运算 在赋值

我一直无法理解的地方在于这句话“意识是先赋值 在做运算”

这里的运算不也是赋值吗 “=”就是赋值的意识啊 百度查阅到的文章大都是这样分开为(i=i;i=i+1)(i=i+1;i=i)但是在我的学习中我100%确定“=”就是赋值 所以大家的表示方式是错误的。

i=i++意识是先把i的值赋给i 在做运算+1 但是没有赋值 这个运算我理解为毫无意义


0 回复 有任何疑惑可以回复我~
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>do...while</title>
<script type="text/javascript">
    var a =6;//mynum初值化数值为6
    var b =6;
    --a;
    b--;
    document.write("a="+a+"<br/>");
    document.write("b="+b);
	</script>
</head>
<body>
</body>
</html>
结果都一样的啊


0 回复 有任何疑惑可以回复我~

mynum--相当于mynum=mynum-1,当你把代码写成mynum=mynum--时,编译时可以认为是

mynum=mynum=mynum-1 这样是没办法编译通过的。


0 回复 有任何疑惑可以回复我~
#1

qq_谜离_03319966 提问者

结果都一样啊 var a =6; var b =6; --a; b--;
2016-10-14 回复 有任何疑惑可以回复我~
#2

Hey你的益达 回复 qq_谜离_03319966 提问者

var a=6; var b=6; var c=a--; var d=--b; 输出c,d的值
2016-10-30 回复 有任何疑惑可以回复我~

mynum--;

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

把mynum=mynum-1换成mynum=mynum--系统就会崩溃

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信