7 回答
TA贡献75条经验 获得超103个赞
num++先引用再自加,例如document.write(num++)中先输出num=1,等这句代码运行结束后num=2,所以第二段代码你先做了num++运算,再输出答案就是2了。同理++num,是先自加再引用,如果你想用第一段代码输出结果为2的话,那就改成++num吧。
TA贡献1条经验 获得超1个赞
<script type="text/javascript">
var num1=1;
document.write(num1++); // 运行完后,num1为2 (num++先引用再自加)
document.write(num1); //这就输出2了
document.write(++num1); //这就输出3了 (++num,是先自加再引用)
num1++; //自加 num1为4
document.write(num1); //这就输出4了
++num1; //自加 num1为5
document.write(num1); //这就输出5了
</script>
TA贡献18条经验 获得超10个赞
你知道num++和++num的区别吗,num++是先引用num再进行计算,而++num是先计算在引用num。所以在你的第一段代码中是先引用再计算的。 求采纳 。谢谢。
TA贡献1条经验 获得超0个赞
因为第一段代码里面你的num1++是放在输出程序上面,在这种情况上,编译器是会先返回num1的数值,然后再对num1进行++。如果你再加一段代码document.write(num1),那么就会返回2了
如果你一开始就想返回2,代码就换成document.write(++num1)吧!,返回的结果就是2了。
TA贡献173条经验 获得超185个赞
感觉这是作用域里面的知识点,我的理解,是游览器预解析在<script></script>里,从上到下。找到var ,未定义,然后读代码变量num1=1,然后在往下读读到doucment.write里面的内容要去找num1,无变量num1,存在表达式,就往父级全局变量读,找到外面的var num1=1.貌似是这样涉及到作用域链知识。。先mark下,学完全部再回来看看。
添加回答
举报