美文网首页
for in、for of、for区别

for in、for of、for区别

作者: YoungEvita | 来源:发表于2018-04-21 16:55 被阅读0次

1. for in

<!-- 形式 -->
for (variable in iterable) {
    statement
 }
<!-- 例子 -->
// 遍历数组
var arr = [1, 2, 3, 4, 5];
for (var key in arr) {
    console.log(arr[key]); // 1 2 3 4 5
}
// 遍历对象
var obj = {
    name: "Lucy",
    age: 17,
    major: "English"
}
for (var key in obj) {
    console.log(obj[key]); // Lucy 17 English
}

2. for of

<!-- 形式 -->
for (variable of iterable) {
    statement
 }
<!-- 例子 -->
// 遍历数组
var arr = [1, 2, 3, 4, 5];
for (var item of arr) {
    console.log(item); // 1 2 3 4 5
}
// 遍历字符串
var str = "OK";
for (var val of str) {
    console.log(val);  // 'O' 'K'
}
// 遍历Map
var map = new Map([['name','Andy'], ['age', 17]]);
for (var entry of map) {
    console.log(entry); // ["name", "Andy"] ["age", 17]
}
for (var [key, value] of map) {
    console.log(key + '->' + value); // name->Andy age->17
}
// 遍历Set
var set = new Set([1,1,2,3]);
for (var val of set) {
    console.log(val); // 1 2 3
}
// 遍历DOM
/* -- html --*/
<div>
    <ul>
        <li>Apple</li>
        <li>Banana</li>
        <li>Orange</li>
    </ul>
</div>
/* -- js -- */
var $li = document.querySelectorAll('li');
for (let item of $li) {
    console.log(item.innerHTML); // Apple Banana Orange
}

3. for

<!-- 形式 -->
for ([initialization]; [condition]; [final-expression])
        statement
<!-- 例子 -->
var arr = [1, 2, 3, 4, 5];
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]); // 1 2 3 4 5
}

共同点
都可使用break 跳出循环;
区别
for in 遍历的是索引; for of 遍历的是数组的元素;
for in 用来遍历数组时,遍历顺序可能不是数组中的实际顺序。
注意
遍历数组时for效率较高,for in 更适合遍历对象。(遍历enumerable的对象),for of可遍历多种如数组、Map、Set、enumerable属性的对象、Dom collection、generators。

相关文章

  • 区别

    人和人是有很大区别的,有思想的区别有段位的区别有思考方式的区别有教育的区别身高的区别长相的区别品位的区别衣著打扮的...

  • cocoapods本地私有库

    与公开私有库的区别spec文件区别 podfile区别

  • $arr['0']和$arr[0]的区别

    区别一: 区别二:

  • 指针和引用的区别

    转自 :c++中,引用和指针的区别 自己小结: (1)非空区别 (2)合法性区别 (3)可修改区别 (4)应用区别

  • 2021-07-27

    有区别吗 真的有区别吗 我猜不猜得到有区别吗 有什么区别 我说不说出来有区别吗 有什么区别 你有改变什么吗 有什么...

  • 源码包管理-源码包与RPM包的区别

    大纲 源码包与 RPM 包的区别 源码包安装过程 源码包与RPM包的区别 1. 区别 安装之前的区别:概念上的区别...

  • 读经典的一些思考

    今日读经典,不同人尤其成年人或有些区别与先后。一曰:时间区别,二曰:年龄区别,三曰:境遇区别,四曰:人之区别。 所...

  • iOS 基础知识

    strong & copy 区别 strong & copy 区别 code

  • 单词辨析

    germ与bacteria区别 a few 与 few 区别

  • iOS开发基础--strong,weak,retain,assi

    weak和strong的区别: copy与retain的区别: __block和__weak修饰符的区别

网友评论

      本文标题:for in、for of、for区别

      本文链接:https://www.haomeiwen.com/subject/tcyyqftx.html