js类型比较
比较数据类型做比较的三种方法typeofinstanceofObject.prototype.toString.call()
javascript七大类型
javascript的数据类型分为两类:原始类型和对象类型。
原始类型(6个)
四个普通类型:数字(number)、字符串(string)、布尔值(bool)、Symbol(ES6新增类型)
两个特殊原始值:空(null)、未定义(undefined)
对象类型(object)
每个属性都由 <key:value>构成,value可以是任意类型(包括对象类型)
typeof操作符获取类型
typeof 返回值有 objectbooleanundefinednumberstringsymbolfunction
- 确定不可以判断null,也不可以获取到具体的类型
1 |
console.log(typeof 42); console.log(typeof 'blubber'); |
instanceof操作符
instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。
参考资料
1 |
// 定义构造函数 |
- 可以确定当前数据是否是某个对象(Object)
- 缺点:无法确定原始类型是否是原始类型
通过Object.prototype.toString.call()判断类型
这种判断算是比较靠谱的,可以判断出数据的七大类型以及内置对象(DateJson等)
1 |
Object.prototype.toString.call(null); // "[object Null]" |
js类型比较的更多相关文章
- JS类型(1)_JS学习笔记(2016.10.02)
js类型 js中的数据类型有undefined,boolean,number,string,null,object等6种,前5种为原始类型(基本类型),基本类型的访问是按值访问的,就是说你可以操作保存 ...
- Js 类型方面的神坑
你有没有遇见过本来好好的一个数组结果 typeof 出来是个 object 的情况,你有没有遇到过非要写个 typeof x === "undefined" 判断未赋值的情况... ...
- js 类型之间的相互转化
设置元素对象属性 var img = document.querySelector("img") img.setAttribute("src","ht ...
- JS类型转换规则详解
JS类型转换规则详解 一.总结 一句话总结:JS强制类型转换中的类型名强制类型转换和其它语言不同,是类型类的构造方法,Number(mix) 一句话总结(JS类型本质):因为js是弱类型语言,所以它相 ...
- JS类型判断&原型链
JS类型检测主要有四种 1.typeof Obj 2.L instanceof R 3.Object.prototype.toString.call/apply(); 4.Obj.constructo ...
- JS类型(2)_JS学习笔记(2016.10.02)
undefined undefined是全局对象(window)的一个特殊属性,其值是未定义的.但 typeof undefined 返回 'undefined' . 虽然undefined是有特殊含 ...
- js类型判断及鸭式辨型
目录 instanceof constructor 构造函数名字 鸭式辨型 三种检测对象的类方式: instanceof.constructor .构造函数名字 用法如下: 1)instanceof ...
- 常用js类型相互转换
数字转换为字符串 var a=200.21;document.write(a.toString(10)); 结果为:200.21以十进制转换 document.write(a.toFixed(3)) ...
- 类型和原生函数及类型转换(二:终结js类型判断)
typeof instanceof isArray() Object.prototype.toString.call() DOM对象与DOM集合对象的类型判断 一.typeof typeof是一个一元 ...
随机推荐
- TensorFlow中的Session、Graph、operation、tensor
TensorFlow中的Session.Graph.operation.tensor
- springboot cloud 网盘
boot https://pan.baidu.com/s/12SkGJNu_M-I-pjg-GxqHRw 5uga boot-cloud https://pan.baidu.com/s/1gO ...
- flask web实战1.27
1.在pycharm的terminal中输入 生成requirements.txt文件 pip freeze > requirements.txt 安装requirements.txt依赖 pi ...
- 关于本人:-D(必读)
关于本人 本人目前从事iOS开发,但心中也有一个全栈的梦想,希望与大家共勉! 关于博客内容 自己会不时分享一些iOS方面的技术点.总结的一些经验及工具类.还有学习其他语言过程中的笔记.技术.总结及心得 ...
- nginx反代及后端web配置
一.反代配置,proxy_pass指向的upstream需要在反代的nginx.conf中配置 server {access_log /home/nginx/front_access.log;erro ...
- SVN服务器的搭建(三)
接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等. 添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态, ...
- 【python】两行代码实现近百年的正反日期查询--20200202
到2020年了.有个日期也火了,记得上一次还是2011年11月2日.为啥捏,因为日期写成数字形式 正反是一样的. 2020年也有一个这样的日期.20200202:2020年2月2日. 于是乎想写一段代 ...
- c++ string 的注意事项
string 的reserve 和 resize 区别 reserve 与capacity相关,如果reserve一个比当前capacity大的 reserve 只会找到一块合适大小的内存,并将原始内 ...
- 源码分析Dubbo服务消费端启动流程
通过前面文章详解,我们知道Dubbo服务消费者标签dubbo:reference最终会在Spring容器中创建一个对应的ReferenceBean实例,而ReferenceBean实现了Spring生 ...
- is,==区别,编码转换
一.is 比较的是内存地址 == 比较的是两边的值 二.编码扩展: 1字节(bytes) = 8 位(bit) 1024byte = 1kb 1024kb = 1MB 1024MB = 1GB 102 ...