聊一聊JavaScript的类型检测
JavaScript的类型检测
一共有四种原生办法检测js的类型
1. typeof
2. instanceof
3. constructor
4. Object.prototype.toString.call()
为什么要聊类型检测呢,不仅因为面试要问,而且也是自己有了新发现,以前看老师写自定义的类型检测,各种炫,但其实我感觉还是不太准,所以今天我不仅想聊一下这些检测方法,我还想自定义一个自己的类型检测方法。
typeof
直接看效果:
typeof 123 'number'
typeof "123" 'string'
typeof true 'boolean'
typeof null 'object'
typeof undefined 'undefined'typeof function() {} 'function'
typeof {} 'object'
typeof [] 'object'
typeof new Date() 'object'
typeof /abc/ 'object'
typeof Symbol() 'symbol'
实际检测才能让你真正记住typeof检测后的类型长什么样,而不是别人说什么就是什么!
所以除了原始类型外并不都是object,对于函数,检测是function,对于undefined是undefined
instanceof
个人觉得这个很不准,说是检测类型这个说法也不太好,因为人家本来的作用是这个:
聊一聊JavaScript的类型检测相关推荐
- JavaScript中类型检测
文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块,这篇文章是我很早之前总结的. 一. ...
- JavaScript学习笔记:类型检测
JavaScript学习笔记:类型检测 1.利用typeof检测数据类型 注意:type of null,返回的不是"null",而是"object".type ...
- JavaScript类型检测小结-http://bbs.51js.com/viewthread.php?tid=82661
老话题了,各种方案和相关讨论都不少,简单总结下: 悠久的typeof JavaScript里只有五种基本数据类型:number, string, boolean, null, undefined. 其 ...
- 说说javascript变量类型和变量类型检测
为什么80%的码农都做不了架构师?>>> javascript是一种弱类型语言,它的典型例子就是即变量在使用的时候可以给它赋值任何类型.那么先来看下javascript都有那些 ...
- JavaScript基本数据类型及类型检测
数据类型 原始值 Boolean String Number Null Undefined Symbol BigInt 引用数据类型 对象 < Object Function Date RegE ...
- 如何使用JavaScript或JQuery检测一个URL文件是否存在?
如何使用JavaScript或JQuery检测一个URL文件是否存在? How do I check if file exists in jQuery or JavaScript? 问题: 如何检查服 ...
- javascript的数据检测总结
目录 javaScript的数据检测 1.typeof 2.instanceof 3.constructor 4.Object.prototype.toString.call()--------- 一 ...
- Flow 是一个静态类型检测工具
参照:https://zhuanlan.zhihu.com/p/26204569 Flow 是一个静态类型检测工具:在现有项目中加上类型标注后,可以在代码阶段就检测出对变量的不恰当使用.Flow 弥补 ...
- 重新巩固JS(一)——JavaScript基本类型
文章目录 JavaScript基本类型 1. 原始类型: 1.1 数值-Number 1.2 字符串-String 1.3 布尔值-Boolean 1.4 字符-Symbol(ES6新增) 1.5 U ...
最新文章
- 中国互联网+光伏建筑一体化行业商业模式创新与投资机会深度报告
- C# 真正能发邮件的源码
- linux查看安装的所有内核,Linux怎么查看系统已安装内核
- 全卷积网络的理解——理解论文Fully Convolutional Networks for Semantic Segmentation
- rsync+inotify实现服务器之间文件实时同步--转
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
- python实例32[简单的HttpServer]
- php 织梦模板 防盗,dedecms 软件下载频道防盗链php代码
- 儿童应用程序中的第三方跟踪功能将被苹果限制
- webpack4升级指南
- ZooKeeper官方文档学习笔记03-程序员指南
- jQuery.获取子节点
- MySQL索引结构--由 B-/B+树看
- pyspark使用anaconda后spark-submit方法(本人对其他文章进行的补充)
- LOAP引擎:clickhouse06:简单介绍几个JSON函数
- 圣诞节到了,写一个炫酷的圣诞树和平安果,送给你最爱的人吧
- LateX各种命令符号
- 《广西经济社会发展报告(2019)》正式发布 聚焦发展热点
- oracle remote diagnostic agent,Oracle数据库收集、分析工具RDA(RemoteDiagnostic Agent)下载
- vba设置Excel单元格左对齐、右对齐、居中对齐、字体、字号、字型
热门文章
- 华为鸿蒙手机版发布,最直观的变化是这些
- Http长连接和短连接的区别
- 2021年5月-国家注册审核员-《认证通用基础》真题10-解析版
- PDF默认打开方式总是被Edge篡改
- FreeRTOS笔记(六):五种内存管理详解
- 大学生HTML+CSS动漫主题网页制作——刀剑神域(6页) dreamweaver作业静态HTML网页设计
- SpringBoot自定义注解和aop
- 注销app密码服务器时出错,苹果7注销id显示验证错误连接服务器出现问题是怎么回事...
- C# 多个TcpClient 的区分处理
- 路由器RIP动态路由配置