前端JavaScript编程:for循环、箭头函数与数据类型辨析
需积分: 11 191 浏览量
更新于2024-12-28
收藏 5KB ZIP 举报
资源摘要信息:"学习总结"
1. For in和for的区别
- for in循环主要用于遍历对象的所有可枚举属性,包括原型链上的属性,返回的是属性名(键名)。它通常用于遍历对象属性名,对于数组来说,它返回的是数组元素的索引。
- for in循环的特点:
- 遍历对象的属性时,将按照属性值的创建顺序(非数值索引按照添加到对象中的顺序,数值索引按照数值大小顺序)返回键名。
- 会遍历对象原型链上的属性,因此如果要避免遍历到原型链上的属性,需要额外的判断条件。
- 遍历到的属性名可能包含对象原型链上的一些属性,如自定义对象的toString方法,因此使用时需要区分对待。
- for of循环主要用于遍历数组或类数组对象,返回的是属性值,同时也适用于其他拥有iterator接口的数据结构,如Map和Set。
- for of循环的特点:
- for of允许使用break、continue、return语句,可以随时退出循环。
- for of更适合遍历实现了iterator接口的数据结构,比如Map、Set和Array。
- 如果遍历的不是拥有iterator接口的数据结构,需要使用Symbol.iterator函数获取iterator。
2. 箭头函数与普通函数的区别
- 箭头函数的语法比普通函数更为简洁,没有function关键字,且不需要return语句,前提是返回的是单个表达式的结果。
- 箭头函数没有prototype属性,因此没有自己的this。在箭头函数中使用this关键字时,它会捕获其所在上下文的this值。
- 箭头函数无法使用call、apply和bind方法来绑定this值,因为它们本质上没有自己的this。
- 箭头函数不会创建自己的this,这意味着它们不会创建自己的arguments对象,且不支持new关键字调用。
- 箭头函数不能用作构造函数,因此不能使用new关键字,也不能使用instanceof操作符来检测。
3. typeof和instanceof的区别
- typeof用于检查变量的数据类型,主要用于基本数据类型,返回的是表示类型的字符串。它能够识别大部分的数据类型,如String、Number、Boolean、Undefined、Null、Symbol和Function。对于对象和数组,typeof会返回"object"。
- instanceof用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上。如果对象是某个构造函数的实例,那么这个对象将返回true,否则返回false。instanceof通常用于检测对象类型。
- typeof主要识别基本类型,而instanceof用于检测对象类型,两者在使用场景上有明显区别。
- 例如,对于一个数组,typeof会返回"object",而Array.prototype.isPrototypeOf(arr)会返回true,说明arr是Array的一个实例。使用instanceof可以区分出不同类型的对象。
- typeof与instanceof的结合使用可以更精确地识别变量的类型,尤其是在JavaScript这种弱类型语言中。
118 浏览量
2021-03-06 上传
2021-04-28 上传
2021-04-28 上传
2021-05-17 上传
2021-06-29 上传
130 浏览量
2021-06-29 上传
2021-03-16 上传
Rainy.凌霄
- 粉丝: 30
- 资源: 4600
最新资源
- WMAN633:2021年Spring与Rota博士进行的定量生态学
- playground:一种新型的虚拟事件平台:penguin:
- ember-audio:Ember插件,可与Web Audio API超级EZ一起使用
- 行业分类-设备装置-压缩机内部空间划分结构.zip
- 哈尔滨工业大学同义词词林扩展版.rar
- 305372complier2563
- NStudio-开源
- Battleship-Clone
- ember-share:一个Ember插件,可使用ngrok(https:ngrok.com)与世界分享您的本地Ember应用程序
- jena-workspace:用于Apache Jena代码的工作区域
- javascript-jquery:一个Java
- OpenCV for Unity 2.3.3-1,支持安卓,IOS,Windows,WebGL,Linux,MacOS
- 【参赛作品】低成本的智能家居联网控制解决方案-电路方案
- ember-artisans:在Ember.js中使用网络工作者的抽象层
- android-sdk_r24.4.1-windows.7z
- 易语言源码ACCESS数据库分类统计.rar