typeof、constructor和instanceof
在JavaScript中,我们经常使用typeof来判断一个变量的类型,使用格式为:typeof(data)或typeof data。typeof返回的数据类型有六种:number、string、boolen、object、function、undefined。但是,对于Array和Date类型的变量,typeof返回的结果都是object,这使我们无法区分具体的数据类型。这时可以使用constructor或instanceof来判断。
constructor返回变量的构造函数,而instanceof用于判断一个对象是否为一个类的实例,例如,当需要判断一个变量data是否为数组时,这两者的使用格式分别如下所示:
if(data.constructor == Array),若data是数组则返回true,否则返回false。
if(data instanceof Array),若date是数组则返回true,否则返回false。
注意:
null表示一个空对象,typeof null 返回的是object。
typeof NaN 返回的是number。未定义的变量返回undefined。
instanceof要求开发者为变量明确指定数据类型。
constructor只能对已有变量进行判断,而typeof则可对未声明变量进行判断(返回undefined)。
typeof、constructor和instanceof的更多相关文章
- javascript之typeof、constructor、instanceof
		ref: http://jingyan.baidu.com/article/29697b912f9939ab20de3c8c.html 
- JavaScript中“typeof”运算符与“instanceof”运算符的差异
		在JavaScript中,运算符“typeof”和“instanceof”都可以用来判断数据的类型,那么这两个运算符有什么不同之处呢? 差异一:使用方式不同. 最明显的差异就是这两个运算符的使用方式了 ... 
- js constructor 和 instanceof
		说到这两个属性,那不得不说一下_proto_这个属性,通常这个属性是隐藏属性,是不允许被暴露的,而某些浏览器为了开发者能够很好的理解,而将这个属性暴露出来,比如Mozilla FireFox,这就是为 ... 
- typeof操作符和instanceof操作符的区别                                                                                                         标签:               JavaScript                                            2016-08-01 14:21             113人阅读              评论(
		typeof主要用于检测变量是不是基本数据类型 typeof操作符是确定一个变量是字符串.数值.布尔类型,还是undefined的最佳工具.此外,使用typeof操作符检测函数时,会返回"f ... 
- JS中关于构造函数、原型链、prototype、constructor、instanceof、__proto__属性
		在Javascript不存在类(Class)的概念,javascript中不是基于类的,而是通过构造函数(constructor)和原型链(prototype chains)实现的.但是在ES6中引入 ... 
- JavaScript  中typeof、instanceof 与 constructor 的区别?
		typeof.instanceof 与 constructor 详解 typeof 一元运算符 返回一个表达式的数据类型的字符串,返回结果为js基本的数据类型,包括number,boolean,st ... 
- typeof、constructor和instance
		在JavaScript中,我们经常使用typeof来判断一个变量的类型,使用格式为:typeof(data)或typeof data.typeof返回的数据类型有六种:number.string.bo ... 
- JavaScript之原型|typeof|instanceof
		//var 变量X --> 对象 --> 构造器 --> 原型对象 function Person(){}; var stu = new Person(); //var stu = ... 
- typeof  instanceof操作符的相关知识
		数据类型 ECMAScript中有5中基本数据类型:Undefined Null Boolean Number String. Typeof运算符 对一个值使用typeof操作符可能返回下列某个字符串 ... 
随机推荐
- 一条陌生的出路【过往d心声】
			一条陌生的出路 Vashon的心声 人生就像一列车,车上总有形形色色的人穿梭往来.你也可能会在车上遇到很多你以为有缘分的人,但是车也会有停下来的时候,总会有人从人生这列车上上下下,当你下去的时候你挥挥 ... 
- 4.03 使用NULL代替默认值
			问题:在一个定义了默认值的列插入数据,并且需要不管该列的默认值是什么,都将该列值设为NULL.考虑一下下面的表: create table D (id interger default 0, foo ... 
- Android(java)学习笔记156:开源框架post和get方式提交数据(qq登录案例)
			1. 前面提到Http的get/post方式 . HttpClient方式,实际工作的时候不常用到,因为这些方式编写代码是很麻烦的 2. Android应用会经常使用http协议进行传输,网上会有很 ... 
- Smart Contracts
			A smart contract is a computer code running on top of a blockchain containing a set of rules under w ... 
- python实战教程之自动扫雷(自己存下来学习之用)
			3.python的第三方库win32api,win32gui,win32con,Pillow,numpy,opencv可通过 pip install --upgrade SomePackage 来进行 ... 
- emacs - GNU Emacs
			总览 (SYNOPSIS) emacs [ command-line switches ] [ files ... ] 描述 (DESCRIPTION) GNU Emacs 是 Emacs 的 一个 ... 
- 解决WampServer窗口界面乱码问题
			软件版本:WampServer 3.1.4 问题描述:Wamp安装完成.点击图标,发现导航界面乱码,也可能使用中没遇到这种问题.如下: 用记事本打开 wampmanager.ini 和 wampman ... 
- node.js中使用Redis
			服务端: 启动Redis服务: redis-server 客户端: 1.安装Redis npm install redis --save 2.redisTest.js文件 //引入red ... 
- JS 数组间的操作
			JS 数组间的操作(交集,并集.差集) 以下是js数组之间常用的操作,如交集,并集.差集等. 迭代 each是一个集合迭代函数,可以将一个函数作为参数和一组可以选的参数.依次将集合的每一个元素和可选参 ... 
- 万能的搜索--之DFS(二)
			(一)深度优先搜索(DFS) 我们先给出深度优先的解决办法,所谓深度优先搜索,在迷宫问题里就是不撞南墙不回头,能走得深一点就尽量深一点.如果碰到了墙壁就返回前一个位置尝试其他的方向.在<啊哈!算 ... 
