JS中:数组和对象的区别,以及遍历数组和遍历对象的区别

  • 1、源码
    • 'use strict';
      
      var strArray = ['a','b','c','d'];
      console.log('循环数组:for');
      for(var i = 0;i<strArray.length;i++){
          console.log('i='+i+';'+'strArray[i]='+strArray[i]);
      }
      
      console.log('循环数组:for in');
      for(var i in strArray){
          console.log('i='+i+';'+'strArray[i]='+strArray[i]);
      }
      
      var obj = {'a':'A','b':'B','c':'C','1':'1re'};
      
      console.log('循环对象:for');
      console.log('obj.length:'+obj.length);
      for(var i = 0;i<obj.length;i++){
          console.log('i='+i+';'+'obj[i]='+obj[i]);
      }
      
      console.log('循环对象:for in');
      for(var i in obj){
          console.log('i='+i+';'+'obj[i]='+obj[i]);
      }
      
      console.log('测试对象:obj[1]='+obj[1]);
      console.log('测试对象:obj[1]='+obj[2]);
      console.log('测试对象:obj[a]='+obj['a']);
      

        

  • 2、源码执行结果如下:
    •  

  • 3、测试结果总结
    • for语法只能遍历数组
    • for in 语法可以遍历数组和对象
      • 遍历数组时:
        • 变量i表示的是数组的索引
      • 遍历对象时:
        • 变量i表示的是对象的key,不是索引。
        • 如果key为数字,那么用法和数组差不多。此时key看着是数字,但实际被作为字符串处理。
    • 数组有.length属性,对象没有.length属性
原文地址:https://www.cnblogs.com/buwuliao/p/15341634.html