zoukankan      html  css  js  c++  java
  • 浅谈javascript中for循环和for...in循环的区别

         在博客园上面注册的账号已经有七个月了,七个月的时间里一直在博客园上面看大家发的技术文档或者自己的想法,感觉自己还是挺有收获的。也一直想要写出高质量的博文来,但是这东西感觉没有积累没有沉淀是写不出来的,越急就越写不出来,越担心犯错也越写不出来,犯错了与其自己心里憋着难受还不如写出来,希望大家多多指点。好了,废话不多说了,切入主题。

        最近在学习javascript的知识,在学习的过程中发现javascript中的for循环和for...in循环还是有些区别的,比如定义一个数组,然后用for..in循环输出

    var array=[1,2,3,4,5,6];
    for(var s in array)
    {
      console.log(s+' ');
    }
    

     输出的结果是0 1 2 3 4 5 竟然不是输出1-6。然后又定义了个比较有区分的(姑且这么叫吧)数组

    var array=['jack','marry','jackson'];
    for(var s in array)
    {
      console.log(s+' ');
    }
    

     输出0 1 2 这样看起来for..in输出的是数组的索引,而不是数组内容,以前在学习C#的时候for..in输出的是数组中的原始值,而不是索引 。平时在学习javascript还是有点受C#语法的影响了,这里提出来希望和我一样的同志长点心了。

      但是如果是定义一个对象,对象中有属性,并且给属性赋初始值,那么用for..in输出的是属性名,且看下面:

    var obj = new Object();
    obj.name = '大象';
    obj.value1 = '12';
    obj.value2 = '334';
    for (var items in obj) {
        console.log(items);
    }
    

     输出的是 name、 value1、 value2。这样看来在对象中属性就相当于对象中的索引。

    下附一篇文章http://www.2cto.com/kf/201311/257181.html    里面是对for..in循环会把一些类型的原型(prototype)中方法与属性给遍历出来的问题,因那篇文章讲的比较易懂,大家自己看看。

    PS:这是我的第一篇博文,刚开始写的时候手生,表达的也有不当的地方,欢迎大家指出。

  • 相关阅读:
    docker-compose 命令不存在
    linux安装rabbitmq ssm集成rabbitmq
    tomcat参数错误 服务器400
    无限极分内 自联查询
    图片移入变大 点击图片切换 点击按钮显示图片
    js正则表达式基本书写
    随鼠标移动
    输入电话号码
    添加新句子
    窗口的弹出与关闭
  • 原文地址:https://www.cnblogs.com/3sss/p/3878042.html
Copyright © 2011-2022 走看看