for循环,for in和for of的区别
最近在写代码,总在被烦恼着到底遍历的时候到底该使用for循环,还是使用for in或者for of ,今天查了以下 ,写出来。
我们一般用for循环来遍历数组,因它可以按顺序的返回每一个索引的值或者索引 ,for循环并不能遍历对象。
for in 用来遍历对象及其原型链上的可枚举属性,而且它的遍历结果不一定是按照顺序来的。
就比如说 如果数组长度中存在空值或者undefined ,那么for in 会直接忽略它,迭代下一个属性。并且for in 还会迭代 原型上继承的以及添加的可枚举属性。
for..of是es6新添加的语法,如果说for in用来遍历键名,那么for of 就是用来遍历键值的。for in 和for的区别是 :for in 遍历是无顺序的且遍历所有可枚举属性,而for of 是按顺序的遍历可迭代对象定义的要迭代的数据。for in 较适合用来遍历对象,因为对象的属性就是无顺序的。
补充 :in操作符 in操作符用来判断一个属性是否是某个对象本身的属性或者是从原型继续下来的,如果是返回true,否则的话,返回false.
in 对删除后的属性返回的是false,而如果一个属性的值为undefined或者为null,则in依然返回true。
这个就是学习的小心得了,不喜勿喷。欢迎advise.
for循环,for in和for of的区别的更多相关文章
- php语言的几种循环语句的使用格式,及其区别
while 只要指定的条件成立,则循环执行代码块 do...while 首先执行一次代码块,然后在指定的条件成立时重复这个循环 for 循环执行代码块指定的次数 foreach 根据数组中每个元素来循 ...
- Qt事件机制浅析(定义,产生,异步事件循环,转发,与信号的区别。感觉QT事件与Delphi的事件一致,而信号则与Windows消息一致)
Qt事件机制 Qt程序是事件驱动的, 程序的每个动作都是由幕后某个事件所触发.. Qt事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. Qt事件的类型很多, 常见的qt的事件如下: 键盘事 ...
- 循环屏障CyclicBarrier以及和CountDownLatch的区别
CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier).它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门, ...
- for循环中的 break和continue的区别
break 语句用于跳出循环. for (i=0;i<10;i++) { if (i==3) { break; } x=x + "The number is " + i + ...
- labview中的移位寄存器、循环隧道,自动索引隧道的区别
对于循环结构(For 循环.while循环)而言,循环体内的数据域外部数据的传递是通过以下三种方式: 1.移位寄存器2.循环隧道3.自动索引隧道 第一.各自的区别.作用 循环隧道,就是把数据传入传出循 ...
- 在for循环里面的++i与i++的区别
++i与i++在表面上没有什么区别 for(语句 1;语句 2;语句 3) 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被执行之后执行 ( ...
- for循环,stream,parallelStream的性能区别
for循环 for循环的性能随着数据量的增加性能也越来越差. 普通的循环不涉及较大的数据量,使用for循环更好. stream(串行流) stream在数据量小的情况下性能差,在数据量中.大的时候性能 ...
- Spring 循环引用(singleton与prototype初始化的区别)
原文链接请参见:http://blog.csdn.net/u010723709/article/details/47185959
- 9月13日JavaScript语句循环(100以备奇偶数、100以内与7先关的数、100以内整数的和、10以内阶乘、乘法口诀、篮球弹起高度、64格子放东西)
3.循环 循环是操作某一个功能(执行某段代码). ①循环四要素: a 循环初始值 b 循环的条件 c 循环状态 d 循环体 ②for循环 a 穷举:把所有的可能性的都一一列出来. b 迭代:每次循环都 ...
- 记录今天学习python中for与while循环针对break和continue的用法
python中有两个主要的循环for与while,其中针对这两个循环有两种不同的中断用法break与continue. 首先先看下面的循环代码: 1: for i in range(10):#变量i带 ...
随机推荐
- VS2012环境下C#调用C++生成的DLL
1.VS2012 C++生成DLL 这个过程仿照http://www.cnblogs.com/LCCRNblog/p/3625200.html创建DLL即可,暂时不用创建测试工程,因为下面有测试工程的 ...
- 暑假练习赛 007 A - Time
A - Time Description standard input/outputStatements A plane can go from city X to city Y in 1 hour ...
- HDU 3584 Cube(三位树状数组)
Cube Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- linux进程资源占用高原因分析命令记录
1.查看进程的线程: ps -eLf|egrep 'gateserver|UID' 2.跟踪线程调用: strace -p 15530 3.统计线程中函数的调用小号CPU时间: strace -p 1 ...
- awk练习题
1. sed和awk有什么区别? (1)awk:按列(域)操作:sed:按行操作 (2)awk:文本处理语言,适合对文本进行抽取处理:sed:非交互式的编辑器,适合对文本进行编辑 2. awk要处理域 ...
- [J2EE] 有关 PreparedStatement
今天同事遇到一个问题,简言之,就是PreparedStatement的预编译究竟是怎么发挥作用的... 嘿嘿,说来惭愧,我以前就只知道PreparedStatement比Statement要好,要防S ...
- Mybatis整理_01
Mybatis专题 Mybaits介绍 Mybatis是一个持久化框架,它有不同语言的版本,比如.NET和Java都有Mybatis对应的类库:它有大多数ORM框架都具有的功能,比如自定义的SQL语句 ...
- maven构建geotools应用工程
前置条件 jdk1.7+eclipse+maven POM配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmln ...
- c#工厂模式与抽象工厂模式
一. 工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中. 工厂方法模式是简单工 ...
- C#三步实现标准事件处理程序
事件,MSDN解释:类或对象可以通过事件向其他类或对象通知发生的相关事情.发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”. 有关事件的理论与好处,在这里就不再废话了,感兴趣的 ...