当前位置: 首页 > 知识库问答 >
问题:

(for...in)和(for...of)语句有什么区别?

赵健柏
2023-03-14
var arr = [3, 5, 7];
arr.foo = "hello";
    
for (var i in arr) {
  console.log(i); // logs "0", "1", "2", "foo"
}
    
for (var i of arr) {
  console.log(i); // logs "3", "5", "7"
  // it doesn't log "3", "5", "7", "hello"
}

与...的不同在循环中,该循环迭代每个键(“0”、“1”、“2”、“foo”)并迭代foo键,用于...的值不迭代foo属性的值,即“hello”。为什么是那样?

在这里,我为...控制台循环的。它应该记录“3”,“5”,“7”,“hello”但它记录“3”,“5”,“7”。为什么?

示例链接

共有1个答案

暴才俊
2023-03-14

用于在上循环对象的可枚举属性名。

for of(ES6中的新版本)确实使用了特定于对象的迭代器,并循环遍历该迭代器生成的值。

在您的示例中,数组迭代器确实会产生数组中的所有值(忽略非索引属性)。

 类似资料:
  • 我知道什么是“代号”...在循环中(它迭代键),但我听说过(它迭代值)。 我对循环。 我知道迭代属性值。那么为什么它不记录而不记录? 与用于...的循环中,该循环迭代每个键()并迭代键,不迭代属性的值,即。为什么会这样? 在这里,我控制台的循环。它应该记录,但它记录。为什么? 示例链接

  • 本文向大家介绍for in 和 for of 的区别?相关面试题,主要包含被问及for in 和 for of 的区别?时的应答技巧和注意事项,需要的朋友参考一下 for of 用于遍历于数组和可迭代对象得到的是entity({key: value}), for in 用于遍历对象的得到的是对象的属性名 for in 不可用来遍历一个数组, for in 将会把数组中的 length 等不需要的属

  • 问题内容: 我知道什么是循环(对键进行迭代),但是第一次听说(对值进行迭代)。 我对循环感到困惑。我没有形容词。这是下面的代码: 我得到的是,遍历属性值。那么,为什么它不记录(返回)而不是?但是循环遍历每个键()。在这里,循环还会遍历键。但是不会迭代财产的价值,即。为什么会这样呢? 总而言之: 在这里,我控制台循环。它应该记录,但是在这里记录。为什么呢 问题答案: 遍历对象的可枚举属性名称。 (E

  • 着色器语言GLSL中关于if语句、for语句的使用,和javascript语言、C语言中的if语句、for语句执行逻辑规则基本一致,这里默认你已经有一定的编程基础,也就不做过多讲解,只是简单说明一下。 单独使用if if(x>100){ gl_FragColor = vec4(1.0,0.0,0.0,1.0);//红色 } if-else形式 bool colorBool; // 根据布尔值

  • for 语句是循环语句中的一种。 for 语句可以使程序在某一个条件下重复执行一段代码。 1. 基本语法 for 语句相对于 if 语句稍微复杂,通常为以下格式: for (初始语句; 条件; 条件为真值时执行的语句) { // 循环体 } 初始语句会在循环开始前进行执行。 条件会在每次循环结束后执行,结果影响循环语句是否要继续执行。 条件为真时执行的语句通常会用来影响下一次计算条件的结果。

  •  for 语句和 while 语句相似,但更为复杂。  语法如下: for(第一节;第二节;第三节) 语句或语句块  在这里,第一节为进入循环之前想要执行的语句。在这里可以定义变量,在这里定义的变量仅在循环中有效 ( 循环结束后将被删除 )。也可以省略本节。(译者:一般此处为循环变量的初始化)  第二节是条件表达式。当此条件表达式的值为 true 时,语句或语句块将被循环(继续)执行。如果省略本节