JavaScript 解释一下for (..in) 和 for (..of) 循环语句的区别

JavaScript 解释一下for (..in) 和 for (..of) 循环语句的区别

通常在 JavaScript 脚本中,我们会遍历一些内置类(如数组、字典、字符串、映射等)的对象。我们使用循环对这些对象进行迭代。JavaScript 支持不同类型的循环:

  • for 循环
  • for (..in) 循环
  • for (..of) 循环
  • while 循环
  • do-while 循环

在本文中,我们将学习 for (..in) 和 for (..of) 循环之间的区别。

for (..in) 循环

JavaScript 的 for (..in) 语句循环遍历对象的可枚举属性。该循环将迭代对象本身的所有可枚举属性,以及对象从其构造函数的原型继承的属性。

语法:

for (variable in object)
    statement

示例:

<!DOCTYPE html> 
<html> 
  
<body> 
    <p id="demo"></p> 
    <script> 
        let person = { 
            firstName: "GeeksforGeeks", 
            lastName: "<br>A Computer Science Portal for Geeks ", 
            rank: 43 
        }; 
        let userId = ""; 
        let i; 
        for (i in person) { 
            userId += person[i]; 
        } 
        document.getElementById("demo").innerHTML = userId; 
    </script> 
</body> 
  
</html> 
  • 输出结果: 如您所见,for (..in) 循环仅迭代字典对象的属性或值。
GeeksforGeeks
A Computer Science Portal for Geeks 43

for (..of) 循环

for (..of) 语句允许您循环遍历可迭代的数据结构,如数组、字符串、映射、节点列表等。它调用一个自定义的迭代钩子,并执行指令以处理对象的每个属性的值。

语法

for (variable of iterable) {
  statement
}

示例:

<!DOCTYPE html> 
<html> 
  
<body> 
    <p id="demo"></p> 
    <script> 
        let text = [ 
            "GeeksforGeeks", 
            " 一个Geeks的计算机科学门户 ", 
            "43" 
        ]; 
        let userId = ""; 
        let i; 
        for (i of text) { 
            userId += i; 
        } 
        document.getElementById("demo").innerHTML = userId; 
    </script> 
</body> 
  
</html> 
  • 输出: 如你所见,for (..of) 循环只迭代数组对象的内容。
GeeksforGeeks 一个Geeks的计算机科学门户 43

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程