请看代码中注释处的疑问!关于 n=n++,n++,n=n+1的理解不明白

来源:4-10 编程练习

大年糕

2017-02-17 10:29

<script type="text/javascript">

var infos=[['小A','女','21','大一'],['小B','男','23','大三'],['小C','男','24','大四'],['小D','女','21','大一'],
           ['小E','女','22','大二'],['小F','男','21','大一'],['小G','女','22','大二'],['小H','女','20','大三'],
           ['小I','女','20','大一'],['小J','男','20','大三']];//第一步把之前的数据写成一个数组的形式,定义变量为 infos
document.write("第一次筛选"+"<br />");
var one=new Array();
var n=0;
for(var i=0;i<infos.length;i++)
{
    if(infos[i][3]=="大一")
    {
        document.write(infos[i]+"<br />");
        one[n]=infos[i];
        n++;//此处为什么n++或者n=n+1就好使,为什么不能直接写n=n++
    }
}
document.write("第二次筛选"+"<br />");
for(var j=0;j<one.length;j++)
{
    if(one[j][1]=="女")
    {
        document.write(one[j]+"<br />");
    }
}
</script>

写回答 关注

3回答

  • 徐京乐
    2017-02-17 16:58:56
    已采纳

    举个例子,定义s=0,n=3.

    比如  s = n++; 就是先把n的值给s然后执行n++(就是n=n+1),所以运行结果是s=3,n=4;

    如果是s=++n;就是先执行n++,这时候n=4,再赋值给s,所以运行结果是s=4,n=4.

    大年糕

    非常感谢!

    2017-02-18 11:59:54

    共 1 条回复 >

  • 徐京乐
    2017-02-17 17:00:26

    n++本身就属于一种简略写法,即n++  等同于 n=n+1;

  • 慕粉1938447112
    2017-02-17 11:14:58

    你如果写成n=++n,就对了。这是因为n++是先把n的值赋给等号左边,然后再自加,而++n是先n自加,再赋值。

    慕粉1938... 回复大年糕

    楼下那个家伙举例就可以,你看看,没啥技术含量。其实真的不必纠结它为何这样,只要记住它的用法就好,如果你非的弄明白原理,那就要翻底层函数了(我也没翻过)。

    2017-02-17 19:20:32

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468190 学习 · 21891 问题

查看课程

相似问题