for in 和 for of的区别

简介: for in 和 for of的区别

1、for in

  • 1.一般用于遍历对象的可枚举属性。以及对象从构造函数原型中继承的属性。对于每个不同的属性,语句都会被执行。
  • 2.不建议使用 for in 遍历数组,因为输出的顺序是不固定的。
  • 3.如果迭代的对象的变量值是 null 或者 undefined, for in 不执行循环体,建议在使用 for in 循环之前,先检查该对象的值是不是 null 或者 undefined。

2、for of

  • 1.for…of 语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。
var s = {
        a: 1,
        b: 2,
        c: 3,
      };
      var s1 = Object.create(s);
      for (let prop in s1) {
        console.log(prop); //a b c
        console.log(s1[prop]); //1 2 3
      }
      for (let prop of s1) {
        console.log(prop); //报错如下 Uncaught TypeError: s1 is not iterable
      }
      for (let prop of Object.keys(s1)) {
        console.log(prop); // a b c
        console.log(s1[prop]); //1 2 3
      }
目录
相关文章
|
6月前
|
数据可视化 数据挖掘
jupternotebook和jupterLab有什么区别?
jupternotebook和jupterLab有什么区别?
696 0
|
6月前
|
Web App开发 安全 应用服务中间件
浅谈C/S vs. B/S的区别
浅谈C/S vs. B/S的区别
192 0
bis和bic区别与实现
bis和bic区别与实现
150 0
|
Java
While 与 do while 的区别
While 与 do while 的区别
78 0
|
算法 IDE Unix
C和C++的区别
C和C++的区别
196 0
|
C语言
%C和%S区别
%C和%S区别
263 0
<T>和<?>区别
简要讲述一下<T>和<?>区别,以及<T>的用法
<T>和<?>区别
setBackgroundImage 和 setImage的区别
setBackgroundImage 和 setImage的区别
210 0
|
关系型数据库
Where and Having区别
Where和Having的异同 (1)where是查询返回结果之前进行过滤的 (2)having是查询返回结果之后,对结果进行过滤的 (3)在SQL中增加 HAVING 子句原因是,where关键字无法与聚合函数一起使用,having子句常跟group by一同使用,过滤分组...
1502 0