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