js数据类型及判断数据类型
众所周知,js有7种数据类型
1. null
2. undefined
3. boolean
4. number
5. string
6. 引用类型(object、array、function)
7. symbol
判断类型有以下4种判读方法
第一种方式: typeof
typeof null ---> "object"
typeof undefined ---> "undefined"
typeof true | false ---> 'boolean'
typeof 42 ---> 'number'
typeof "42" ---> 'string'
typeof { name : '1'} | [] ---> 'object'
typeof Symbol ---> 'symbol'
typeof ()=>{} ---> 'function'
typeif void 0 ---> 'undefined'
第二种方式 instanceof 但是这种方式只适合判断object类型
比如 : var arr = [] ; arr instanceof Array ---> true
null instanceof Object ---> false
[function] instanceof Object | Function --> true
第三种方式 Object.prototype.toString.call() 这种方式可以将全部的数据类型检测出来 也是 推荐的方式
因为toString是Object的原型方法, 而 Array Function 等都是Object的实例。都重写了toString 方法。返回的是类型的字符串
Object.prototype.toString.call(null) ---> [object Null]
Object.prototupe.toString.call(undefined) ---> [object Undefined]
Object.prototype.toString.call(123) ---> [object Number]
Object.prototype.toString.call(true) ---> [object Boolean]
Object.prototype.toString.call('123') ---> [object String]
Object.prototype.toString.call({}) ---> [object Object]
Object.prototype.toString.call([]) ---> [object Array]
Object.prototype.toString.call(Math) ---> [object Math]
Object.prototype.toString.call(function(){}) ---> [object Function]
Objdec.prototype.toString.call(new Date) ---> [object Date]
Object.prototype.toString.call(Symbol()) ---> [object Symbol]
第四种方式: constructor 判断对象的构造函。
1. null 是js 原型链的起点,没有构造函数
2. undefined 没有构造函数
3. [].constructor === Array ---> true
4. [string].constructor === String
5. [object].constructor === object
6. [number].constructor === Number
7. [symbol].constructor === Symbol
8. [function].constructor === Function
9. [new Date].constructor === Date
10. [RegExp].constructor === RegExp
来源 https://www.cnblogs.com/amiezhang/p/10325558.html
最新文章
- 【JAVA】 UIMnager
- easyui datagrid加载json
- python基础——枚举类
- Linux SO_KEEPALIVE属性,心跳
- Linux上在同一端口上共享SSH与HTTPS的工具:SSLH
- spring boot 配置文件提示自定义配置属性
- 【转】vlc android 代码编译
- wpf的datagrid和winform的datagridview刷新
- fatal error RC1004: unexpected end of file found处理方法
- Java WEB工程搭建UEditor
- iOS监听模式系列之iOS开发证书、秘钥
- TensorFlow tutorial
- rpc概念及nfs的基本应用
- Git推送错误Remote: User permission denied错误解决方法
- python接口测试—post请求(二)
- js 处理 cookie的存储与删除
- JavaScript快速入门-ECMAScript对象介绍
- 更换mysql数据库的datadir目录
- Python实现Json结构对比的小工具兼谈编程求解问题
- spring自定义注解拦截器的配置
热门文章
- maven依赖总结
- clion 查看代码 多次查看后如何一步一步回退到最初查看的代码位置
- IDEA将指定package(指定文件)打成jar包
- [转]使用 curl 发送 POST 请求的几种方式
- jdk1.7 64位官方下载
- (转载)CNN 模型所需的计算力(FLOPs)和参数(parameters)数量计算
- Python 安装 MySQL-python ImportError: No module named 'ConfigParser'
- Consul ACL集群配置说明以及ACL Token的用法
- 手贱重置了mysql密码,导致登陆不进去的解决办法
- spring跨重定向传递数据