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的类型检测相关推荐

  1. JavaScript中类型检测

    文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块,这篇文章是我很早之前总结的. 一. ...

  2. JavaScript学习笔记:类型检测

    JavaScript学习笔记:类型检测 1.利用typeof检测数据类型 注意:type of null,返回的不是"null",而是"object".type ...

  3. JavaScript类型检测小结-http://bbs.51js.com/viewthread.php?tid=82661

    老话题了,各种方案和相关讨论都不少,简单总结下: 悠久的typeof JavaScript里只有五种基本数据类型:number, string, boolean, null, undefined. 其 ...

  4. 说说javascript变量类型和变量类型检测

    为什么80%的码农都做不了架构师?>>>    javascript是一种弱类型语言,它的典型例子就是即变量在使用的时候可以给它赋值任何类型.那么先来看下javascript都有那些 ...

  5. JavaScript基本数据类型及类型检测

    数据类型 原始值 Boolean String Number Null Undefined Symbol BigInt 引用数据类型 对象 < Object Function Date RegE ...

  6. 如何使用JavaScript或JQuery检测一个URL文件是否存在?

    如何使用JavaScript或JQuery检测一个URL文件是否存在? How do I check if file exists in jQuery or JavaScript? 问题: 如何检查服 ...

  7. javascript的数据检测总结

    目录 javaScript的数据检测 1.typeof 2.instanceof 3.constructor 4.Object.prototype.toString.call()--------- 一 ...

  8. Flow 是一个静态类型检测工具

    参照:https://zhuanlan.zhihu.com/p/26204569 Flow 是一个静态类型检测工具:在现有项目中加上类型标注后,可以在代码阶段就检测出对变量的不恰当使用.Flow 弥补 ...

  9. 重新巩固JS(一)——JavaScript基本类型

    文章目录 JavaScript基本类型 1. 原始类型: 1.1 数值-Number 1.2 字符串-String 1.3 布尔值-Boolean 1.4 字符-Symbol(ES6新增) 1.5 U ...

最新文章

  1. 中国互联网+光伏建筑一体化行业商业模式创新与投资机会深度报告
  2. C# 真正能发邮件的源码
  3. linux查看安装的所有内核,Linux怎么查看系统已安装内核
  4. 全卷积网络的理解——理解论文Fully Convolutional Networks for Semantic Segmentation
  5. rsync+inotify实现服务器之间文件实时同步--转
  6. 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
  7. python实例32[简单的HttpServer]
  8. php 织梦模板 防盗,dedecms 软件下载频道防盗链php代码
  9. 儿童应用程序中的第三方跟踪功能将被苹果限制
  10. webpack4升级指南
  11. ZooKeeper官方文档学习笔记03-程序员指南
  12. jQuery.获取子节点
  13. MySQL索引结构--由 B-/B+树看
  14. pyspark使用anaconda后spark-submit方法(本人对其他文章进行的补充)
  15. LOAP引擎:clickhouse06:简单介绍几个JSON函数
  16. 圣诞节到了,写一个炫酷的圣诞树和平安果,送给你最爱的人吧
  17. LateX各种命令符号
  18. 《广西经济社会发展报告(2019)》正式发布 聚焦发展热点
  19. oracle remote diagnostic agent,Oracle数据库收集、分析工具RDA(RemoteDiagnostic Agent)下载
  20. vba设置Excel单元格左对齐、右对齐、居中对齐、字体、字号、字型

热门文章

  1. 华为鸿蒙手机版发布,最直观的变化是这些
  2. Http长连接和短连接的区别
  3. 2021年5月-国家注册审核员-《认证通用基础》真题10-解析版
  4. PDF默认打开方式总是被Edge篡改
  5. FreeRTOS笔记(六):五种内存管理详解
  6. 大学生HTML+CSS动漫主题网页制作——刀剑神域(6页) dreamweaver作业静态HTML网页设计
  7. SpringBoot自定义注解和aop
  8. 注销app密码服务器时出错,苹果7注销id显示验证错误连接服务器出现问题是怎么回事...
  9. C# 多个TcpClient 的区分处理
  10. 路由器RIP动态路由配置