当前位置: 首页 > 面试题库 >

JavaScript中的for语句和for语句之间有什么区别?

左丘照
2023-03-14
问题内容

我知道什么是for... in循环(对键进行迭代),但是第一次听说for... of(对值进行迭代)。

我对for... of循环感到困惑。我没有形容词。这是下面的代码:

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 is does not log "3", "5", "7", "hello"
}

我得到的是,for... of遍历属性值。那么,为什么它不记录(返回)"3", "5", "7", "hello"而不是"3", "5", "7"?但是for... in循环遍历每个键("0", "1", "2", "foo")。在这里,for... in循环还会遍历foo键。但是for... of不会迭代foo财产的价值,即"hello"。为什么会这样呢?

总而言之:

在这里,我控制台for... of循环。它应该记录,"3", "5", "7","hello"但是在这里记录"3", "5", "7"。为什么呢


问题答案:

for in 遍历对象的可枚举属性名称。

for of(ES6中的新增功能)确实使用了特定于对象的迭代器,并循环了由该对象生成的值。



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

  • 与...的循环中,该循环迭代每个键()并迭代键,用于...的值不迭代属性的值,即。为什么是那样? 在这里,我为...控制台循环的。它应该记录但它记录。为什么? 示例链接

  • 着色器语言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 时,语句或语句块将被循环(继续)执行。如果省略本节

  • for语句 记得刚参加工作的时候,使用的语言主要是VB和Delphi,那个时候我大量使用 do while这种循环。后来主要使用PHP和Python,越来越多的使用for语句,甚至几乎不用while语句。现在,感觉其实while语句不是必须的,Go语言就没有while这种循环结构。要想在Go语言中执行循环语句只有for这一个结构。 一个for里面是一个代码块。 for循环体的几种写法: for{