JavaScript 中typeof、instanceof 与 constructor 的区别?
typeof、instanceof 与 constructor 详解
typeof 一元运算符
返回一个表达式的数据类型的字符串,返回结果为js基本的数据类型,包括number,boolean,string,object,undefined,function.
语法:typeof(data) 或 typeof data
实例:
var test = [123, true, "abc", {}, function() {}];
for(var i = 0; i <= test.length; i++) {
console.log(typeof test[i]);
}
// number
// boolean
// string
// object
// function
// undefine注: typeof null == object
instanceof 二元运算符
返回一个布尔值,该值指示一个对象是否为特定类的一个实例。
语法: object instanceof class
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 class 存在于对象的原型链中(为 true),则该运算符返回 true。如果 object 不是 class 的实例,或 object 为 null,则该运算符返回 false。
其本质是判断 class.prototype 是否存在于object对象的原型链上,关于原型链请点击这里
实例:
function A(){ }
var a = new A();
console.log( a instanceof A);//true
console.log(a instanceof Object);//true
constructor 属性,存在于Object.prototype的属性
返回对象的构造函数
语法: object.constructor
返回值是函数的引用,不是函数名:
JavaScript 数组 constructor 属性返回 function Array() { [native code] }
JavaScript 数字 constructor 属性返回 function Number() { [native code] }
JavaScript 字符串 constructor 属性返回 returns function String() { [native code] }
如果一个变量是数组你可以使用 constructor 属性来定义。
实例:
function A(){ }
var a = new A();
console.log(a.constructor,a.constructor === A); //true
console.log(a.constructor === Object); //false
对象的构造器 constructor 是可以改变的,但我们一般不建议这样做,因为这样会使程序的逻辑混乱。
实例:
function A(){ }
function B(){ }
A.prototype.constructor = B;
var a = new A();
console.log(a.constructor,a.constructor === A); //false
console.log(a.constructor === B); //true
JavaScript 中typeof、instanceof 与 constructor 的区别?的更多相关文章
- Javascript中typeof instanceof constructor的区别
typeof typeof,是一个运算符,运算中需要一个操作数,运算的结果就是这个操作数的类型,运算的结果是一个字符串.他有一定的局限性,对于对象类型的值,只能得到一个object结果,却不能精确得到 ...
- JavaScript中typeof、toString、instanceof、constructor与in
JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定. 这也意味着你可以使用同一个变量保存不同类型的数据. 最新的 ECMAScrip ...
- JavaScript中typeof,instanceof,hasOwnProperty,in的用法和区别
一. typeof操作符 typeof操作符用于返回正在使用值的类型. // 使用原始值 let mNull = null; let mUndefined = undefined; let mStri ...
- 【JavaScript中typeof、toString、instanceof、constructor与in】
JavaScript中typeof.toString.instanceof.constructor与in JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行 ...
- javascript中typeof与instanceof的区别
JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前 ...
- javascript中typeof和instanceof用法的总结
今天在看相应的javascript书籍时,遇到了typeof和instanceof的问题,一直不太懂,特地查资料总结如下: JavaScript 中 typeof 和 instanceof 常用来判断 ...
- JavaScript中object和Object有什么区别
JavaScript中object和Object有什么区别,为什么用typeof检测对象,返回object,而用instanceof 必须要接Object呢 ————————————————————— ...
- JavaScript中const、var和let区别浅析
在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始 ...
- javascript 中 typeof 的使用
javascript 中 typeof 的使用 javascript有五种基本的数据类型(简单数据类型),它们分别是:String.Undefined.Null.Boolean和Number.还有一种 ...
- JavaScript中值类型和引用类型的区别
JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和布尔值.此外,JavaScript中还有两个特殊的原始值:null和undefined,它们既不是数字也不 ...
随机推荐
- php配置说明
1上传文件限制配置 post_max_size = 200M upload_max_file_size = 200M
- 阿里云ECS环境部署 centos 6.5
阿里云ESC服务器1 先挂载磁盘 参考:http://help.aliyun.com/view/11108189_13491193.html?spm=5176.2020520101.121.2.1wc ...
- C# Emgu CV学习笔记二之图像读写的两种方法
http://blog.csdn.net/marvinhong/article/details/6800450 图像显示在控件loadPictureBox上 方法一 //读取图像001.jpg Int ...
- restful风格请求及都是 / 的请求及参数也在请求的/中
前台请求的样式: http://localhost:8080/item/88909 其中参数就是最后的 商品id号 88909 后台Controller中取出参数的方法: @Controller p ...
- jdk1.5后枚举类的定义规则
转: http://blog.csdn.net/willcold/article/details/12844487 JDK1.5 新增的enum关键字用于定义枚举类 枚举类也 ...
- k8s本地搭建相信步骤
搭建前的准备: 主机名配置 cat >/etc/hosts<<EOF127.0.0.1 localhost localhost.localdomain localhost4 loca ...
- /etc/rc.d/里文件的作用
rc.sysinit指的是系统启动不管进哪个运行级别必须做的初始化工作, rcn.d目录指的是系统进对应n的运行级别时候系统必须做的工作,目录下S打头的服务指进此运行级别时候启动的服务,而K打头的指离 ...
- Jquery validate验证表单时多个name相同的元素只验证第一个的问题
下面搜集了五种方法,主要还是前两个提供了解决方案,第三种需要修改jQuery源码: 修复jquery.validate插件中name属性相同(如name='a[]')时验证的bug 使用jquery. ...
- 洛谷 2186 小Z的栈函数
https://www.luogu.org/problem/show?pid=2186 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: N ...
- 26 THINGS I LEARNED IN THE DEEP LEARNING SUMMER SCHOOL
26 THINGS I LEARNED IN THE DEEP LEARNING SUMMER SCHOOL In the beginning of August I got the chance t ...