for...in和for...of循环的区别

以下是使用for...in和for...of分别对Array,Set,Map做的测试:

for...in由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组也是一个对象,数组中的每个元素的索引被视为属性名称,所以我们可以看到使用for...in循环Array数组时,拿到的其实是每个元素的索引。

如上所示,当我们为a多手动添加一个属性name的时候,for...in循环会把name属性也包括在内,而Array的length属性却不包括在内。

for...of循环则不存在上述的问题,它只循环集合本身的元素。这就是为什么引入for...of循环。

时间: 2024-08-24 22:31:44

for...in和for...of循环的区别的相关文章

关于JSON类的两个用途与for..in和for循环的区别

JSON 这个类的两个用途: 1)将Object 对象,转换成string 类型 var obj = {"a":"1","b":"2","c":"json"}; var a=JSON.stringify(obj);//转换成string对象 2)将字符串 转换Object 对象 var strObj = '{"a":"1","b"

do while 循环和while循环的区别

do while 循环和while循环的区别 1.do while循环是先执行循环体,然后判断循环条件,如果为真,则执行下一步循环,否则终止循环:    while循环是先判断循环条件,如果条件为真则执行循环体: 2.do while循环条件后面必须有一个分号,这个分号表明循环结束.

黑马程序员----java基础---递归概述、递归和循环的区别

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.递归函数,通俗的说就是函数本身自己调用自己... 如:n!=n(n-1)! 你定义函数f(n)=nf(n-1) 而f(n-1)又是这个定义的函数..这就是递归 定义:程序调用自身的编程技巧称为递归( recursion). 递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小

递归与循环的区别

递归与循环是两种不同的解决问题的典型思路. 递归算法: 优点:代码简洁.清晰,并且容易验证正确性.(如果你真的理解了算法的话,否则你更晕) 缺点:它的运行需要较多次数的函数调用,如果调用层数比较深,需要增加额外的堆栈处理,比如参数传递需要压栈等操作,会对执行效率有一定影响.但是,对于某些问题,如果不使用递归,那将是极端难看的代码. 循环算法: 优点:速度快,结构简单. 缺点:并不能解决所有的问题.有的问题适合使用递归而不是循环.如果使用循环并不困难的话,最好使用循环. 递归算法 和循环算法总结

python中生成器对象和return 还有循环的区别

python中生成器对象和return 还有循环的区别 在python中存在这么一个关键字yield,这个关键字在项目中经常被用到,比如我写一个函数不想它只返回一次就结束那我们就不能用return,因为return后面就不能跟任何东西,意味着函数的结束.那么我们完全可以这么做: def main(): for i in range(1,100): yield i 这样就等于生成了一个循环返回对象,特别在爬虫scrapy中较为常见!yeild和return还有for 上本质有什么区别呢?其实很简单

12、三种循环的区别、死循环

12.1 三种循环的区别 三种循环的区别: 1.如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次. 2.for循环的变量在小括号当中定义,只有循环内部才可以使用.while循环和do- while初始化语句本来就在外面,所以出来循环之后还可以继续使用. 循环之间可以嵌套使用 12.2 死循环 永远停不下来的循环,叫做死循环 原文地址:https://www.cnblogs.com/koss/p/12283409.html

for循环,for…in循环,forEach循环的区别

for循环,for…in循环,forEach循环的区别for循环通关for循环,生成所有的索引下标for(var i = 0 ; i <= arr.length-1 ; i++){ 程序内容 }来执行循环. forEach循环数组.forEach(function(形参1,形参2,形参3){})形参1: 存储的是当前循环次数时,获取的单元数据形参2.储存的是当前循环次数时,获取的单元索引下标形参3.储存的是原始数组三个参数不一定全部定义,看实际项目要求forEach() 只能循环遍历数组,不能循

简析Java中while循环与do/while循环的区别

while语法格式:while(布尔表达式){ //语句}先判断布尔表达式,如果为true就会执行循环体中的语句,然后再判断布尔表达式,如果为true就执行循环体中的语句,一直到布尔表达式为false,然后循环结束.通常用算术运算符(++ -- 累减) do/while语法格式:do{//语句}while(布尔表达式);先执行一次循环体,然后在判断布尔表达式是不是true,如果是就继续执行循环体,在判断布尔表达式,直到为false就结束循环.两者的区别:while是先判断在执行如果判断不成立,就

for-in和for 循环 的区别

以前早就知道,for...in 语句用于对数组或者对象的属性进行循环操作,而for循环是对数组的元素进行循环,而不能引用于非数组对象, 但咱在js项目里,遇到循环,不管是数组还是对象,经常使用for-in循环,因为可以少敲代码嘛,看看各自语法就知道了: for (变量 in 对象/数组) { 在此执行代码 } for(int 变量初始值;条件;递增或递减){ 在此执行代码 } 但今天遇到了一个坑,废了半天劲才找出原因,也算是为咱以前的懒惰买了单吧.. 今天老大要咱写一个类似于双色球抽奖的js程序