什么是对象:

在 JavaScript 中,几乎”所有事物”都是对象。

  • 布尔是对象(如果用 new 关键词定义)
  • 数字是对象(如果用 new 关键词定义)
  • 字符串是对象(如果用 new 关键词定义)
  • 日期永远都是对象
  • 算术永远都是对象
  • 正则表达式永远都是对象
  • 数组永远都是对象
  • 函数永远都是对象
  • 对象永远都是对象

所有 JavaScript 值,除了原始值,都是对象。

对象中有很多属性值,我们怎么拿到这些属性值呢?我们需要遍历!

在javascript里遍历是必不可少的一项重要内容, 从刚入前端坑开始,就会学到遍历的方法,就是for循环,while循环和do while循环。。。

那我们要怎样进行对象的遍历?

最开始我们学到数组,对数组进行遍历,可以用for循环,后来我们又学到对象,但是对象不能用for循环遍历,为什么呢?
我们可以先试一下;
这是数组的用for循环遍历:

var arr = ["hahaha",4,5,6,"lalla"];
        for(var i=0;i<arr.length;i++){
            // i现在是数组的索引
            // console.log(i);
            // 根据数组的索引拿到数组的数据
            console.log(arr[i]);
        }

这是对象用for循环遍历:

var obj = {
    name:"admin",
    age:16,
    sex:"男"
};
console.log(obj);
for(var i=0;i<obj.length;i++){
    console.log(obj[i]);
}
    // 此时什么都不会出现

这是什么原因:
数组其实就是一个对象,有序的集合,可以用循环进行遍历。
有序:从0开始到length-1结束。

对象本来就是对象,无序的集合。
对象没有索引,没有从0开始到哪结束。
对象只有键,没有顺序,不能用循环遍历。
所以我们需要用到javaScript提供了遍历语句for-in(功能类似循环),可以遍历没有索引的集合,也被称为枚举。
语法:

for (var key in object) {
            要执行的代码
        }

如:

for(var i in obj){
            // i是所有的key(属性值)
            console.log(obj[i]);
        }

输出的截图为:

遍历文件对象 java 遍历文件对象什么意思_for循环

注意:

  • console.log(obj.i);// 错误遍历方式
  • console.log(obj[i]);//正确遍历方式
for 与 for…in 的区别
  • for : 每判断一次是否符合当前数据的长度再循环 , 知道不符合条件即刻停止 , 安全系数高
  • for…in :是对应于一个对象或数组的每个执行一个或多个语句
优缺点:

for:

  • 优点:程序简洁,结构清晰,循环初始化,循环变量化,循环体和循环条件位置突出
  • 缺点:结构比while循环复杂,容易出编码错误

for in:(它大部分用于遍历对象)

  • 定义:用于循环遍历数组或对象属性,fot in循环里面的index是string类型的, 代码每执行一次,就会对数组的元素或者对象的属性进行一次操作
  • 缺点:某些情况下,会出现随机顺序的遍历,因为里面的值是string类型,所以增加了转换过程,因此开销较大
  • 优点:可以遍历数组的键名,遍历对象简洁方便。(逆战必胜)