当前位置: 首页 > news >正文

in typeof instanceof ===这些运算符有什么作用

这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

【return的用法是什么?若在for循环中,还会执行下一次循环吗?】

1.背景介绍

在JavaScript中,有很多常见的运算符和关键字,这次我们来看看其中的 in,typeof,instanceof,还有===,分别是干什么的,有什么用,和什么情况下可能会用到 。

2.知识剖析

2.1、in 运算符

clipboard.png

clipboard.png

IN运算符判断数组

clipboard.png

for in组合遍历大法

2.2、typeof运算符

clipboard.png

可调出console进行demo

2.3、instanceof 运算符

clipboard.png

instansceof最直接的用法

值得一提的是,instanceof 并不能检测 以string或者number为数据类型的值的对象,

关于 对 instanceof 的深入理解,你可能还需要一些 构造函数 和 原型链 的相关知识来支撑。

2.4、=== 运算符

clipboard.png

3.常见问题

JS运算符 == 和 === 之间有什么不一样?

4.解决方案

clipboard.png

==&===原理

5.编码实战

点击这里

6.拓展思考

大家都知道js中可以使用 typeof 来判断 变量 的 基本类型,如:

console.log(typeof '111');                // "string"

console.log(typeof 22);                  // "number"

console.log(typeof a);                    // "undefined"

console.log(typeof undefined);      // "undefined"

console.log(typeof []);                    // "object"

但是这个方法不适用于来判断数组,console.log(typeof []);    // "object"

因为不管是数组还是对象,都会返回object,这就需要我们寻找其他的方法,辣么判断数组可以用什么方法呢?

clipboard.png

判断数组的一些方法

7.参考文献

http://blog.csdn.net/dansuwei...

8.更多讨论

分享人:在日常编程中,你还使用过别的有意思的运算符吗?

庄引:ES6中还有Array.isArray(arr);这种方法也可以轻松的分辨数组和对象

肖浩宇:NaN的数据类型

分享人:使用typeofNaN得出值为number;其实这个有点奇怪,我们也讨论了很久,按理说它并不是一个数字,在编码很少直接使用到NaN。通常都是在计算失败时,作为 Math 的某个方法的返回值出现的(例如:Math.sqrt(-1))或者尝试将一个字符串解析成数字但失败了的时候(例如:parseInt("blabla"))。只能说它的属性值是一个number,属于number这个数据类型的集合。

庄引:for in组合遍历数组与for直接遍历数组有什么区别

分享人:for in组合遍历比for有优势,前者不需要知道数组的长度也能将数组中的元素一一遍历出来

相关文章:

  • mysql_config not found
  • 情绪与神经
  • 初识docker之如何运行一个容器
  • 20181203-join核心模块方法 + events核心模块发布订阅模式 + fs读写文件流
  • AWS实战 - 利用IAM对S3做访问控制
  • 糟糕的软件设计:幻想出来的问题
  • windows下启动和运行分布式消息中间件消息队列 kafka
  • 关系与外键约束
  • TP自动生成模块目录
  • maven私服搭建
  • canvas 使用图片跨域问题
  • MySQL的安装与配置
  • redhat7.5在H3C机器上黑屏无显
  • 超级详细使用Webpack4.X 搭建H5开发环境
  • 真数组与伪数组的区别
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ES6--对象的扩展
  • HTTP请求重发
  • js中forEach回调同异步问题
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Redis在Web项目中的应用与实践
  • sublime配置文件
  • tab.js分享及浏览器兼容性问题汇总
  • XForms - 更强大的Form
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 从零开始的无人驾驶 1
  • 高程读书笔记 第六章 面向对象程序设计
  • 简析gRPC client 连接管理
  • 小李飞刀:SQL题目刷起来!
  • 移动端 h5开发相关内容总结(三)
  • 阿里云重庆大学大数据训练营落地分享
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​520就是要宠粉,你的心头书我买单
  • # 透过事物看本质的能力怎么培养?
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • $(selector).each()和$.each()的区别
  • $.ajax,axios,fetch三种ajax请求的区别
  • (03)光刻——半导体电路的绘制
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (四) 虚拟摄像头vivi体验
  • (四)Controller接口控制器详解(三)
  • . Flume面试题
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .Net接口调试与案例
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .net实现客户区延伸至至非客户区