for of和 for in的区别

简介: JavaScript中,for...of遍历可迭代对象的值,适合数组;for...in遍历对象属性,注意其遍历顺序不确定且包括继承属性,可用hasOwnProperty判断自身属性。同步指任务依次执行,异步则通过回调或事件实现非阻塞执行,适用于耗时任务如网络请求。常见异步方式包括定时器、接口调用、事件监听。

or...of 和 for...in 是 JavaScript 中的两种循环语句。
for...of 循环遍历可迭代对象(例如数组)的值。
for...in 循环遍历对象的属性。
因此,for...of 适用于遍历数组中的值,而 for...in 适用于遍历对象的属性。
在使用 for...of 和 for...in 循环时,可以使用 break 和 continue 语句来控制循环的流程。
在使用 for...in 循环时,应注意遍历的是对象的所有可枚举属性,包括它的继承链中的属性。因此,如果对象继承了一些不希望遍历的属性,可以使用 hasOwnProperty 方法来检查该属性是否为对象本身的属性:
for...in 循环的迭代顺序是不确定的,因此如果希望按照特定顺序遍历对象的属性,可以使用 Object.keys 方法将对象的属性名组成的数组传递给 for...of 循环。
什么是同步异步
在 JavaScript 中,同步和异步指的是程序的执行方式。
JavaScript 是单线程语言,意味着它只能在一个时间点上执行一个任务。如果遇到耗时较长或涉及网络通信的任务,如果使用同步方式执行,程序就会停止执行,直到任务完成,这显然不是理想的方案。
因此,JavaScript 中的异步编程就应运而生。异步编程的核心思想是使用回调函数或事件机制,将耗时较长的任务交给浏览器或系统执行,JavaScript 程序在等待任务完成时继续执行,在任务完成时调用回调函数或触发事件通知程序进行下一步操作。
例如,在 JavaScript 中使用 XMLHttpRequest 对象发送网络请求时,可以设置回调函数或事件处理器来处理服务器响应,这样 JavaScript 程序就可以在等待服务器响应时继续执行,在服务器响应到达时再调用回调函数或触发事件进行处理。

常见的异步方式:
①定时器,setTimeout,setInterval
②接口调用,axios.get() , axios.post(), axios({}),node中的 readFile(),writeFile()
③事件函数, dom.addEventLister("click",function(){}

相关文章
|
1月前
|
人工智能 调度 数据安全/隐私保护
. Stable Diffusion 的工作流程(底层原理)
本文介绍了 Stable Diffusion 文生图模型的工作流程,包括输入文本描述、语义编码、图像生成与解码等关键步骤,揭示了 AI 如何将文字转化为图像的技术原理。
162 0
|
2月前
|
JavaScript 前端开发
forEach与map的区别
forEach与map的区别
161 0
|
1月前
|
存储 算法
最小生成树的概念与思想
数据结构中的图存储结构包含顶点和边,分为连通图与非连通图。生成树是包含所有顶点、任意两点间仅有一条通路的极小连通图。最小生成树则是权值总和最小的生成树,常用于解决道路建设等实际问题,常用算法有普里姆算法和克鲁斯卡尔算法。
43 0
|
2月前
|
设计模式 前端开发 JavaScript
MVVM的理解:
MVVM的理解:
154 0
|
1月前
|
存储 算法 Java
求数组中的最大值和最小值
本文介绍了在程序中如何查找数组中的最大值和最小值,重点讲解了两种算法:普通算法和分治算法。普通算法通过遍历数组直接比较元素大小,找出最值;而分治算法则通过递归将数组划分成更小的部分,分别找出各部分的最大值,最终合并结果得到整个数组的最大值。文章以 {3,7,2,1} 为例,详细演示了两种算法的实现过程,并提供了 C、Java 和 Python 的代码示例。
89 0
|
1月前
|
搜索推荐 Java C语言
插入排序算法
插入排序算法是一种简单直观的排序方法,通过将每个元素插入到已排序序列中的合适位置,最终完成整个序列的排序。其时间复杂度为 O(n²),适用于小规模数据的排序。
39 0
|
1月前
|
存储 算法 Java
哈希查找算法
哈希查找算法,又称散列查找算法,是一种通过哈希表快速定位目标元素的查找方法。其核心在于利用哈希函数将元素映射到表中的一个位置,从而实现高效查找,平均时间复杂度为O(1)。该算法适用于有序或无序序列,关键在于构建合适的哈希表并处理可能出现的哈希冲突。
65 0
|
2月前
|
存储 JavaScript 前端开发
JS的数据类型,储存上的差距
JavaScript 中的数据类型分为基本类型和引用类型,存储方式和占用空间不同。基本类型包括布尔值、数字、字符串、null 和 undefined,占用空间小;引用类型如对象、数组和函数则占用更多空间。合理选择数据类型可优化程序性能。
59 0
JS的数据类型,储存上的差距
|
2月前
|
JavaScript 前端开发
es6新增特性
ECMAScript 6(ES6)是JavaScript的重要升级版本,引入了如`let`和`const`声明变量、箭头函数、块级作用域、类、模板字符串、解构赋值等新特性,提升了代码的简洁性与可维护性。
92 0
|
2月前
|
前端开发 JavaScript
promise的理解
promise的理解
48 0