码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript typeof obj === ‘object’ 这样写有什么问题

时间:2016-08-23 01:24:14      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

typeof Array, Object, new Class() 都会返回‘object‘, 所以使用typeof不能准确的判断变量是否为object

typeof [];  //object
typeof {};  //object
typeof new (function (){});  //object
typeof 1//number
typeof 1//string
typeof null//object
typeof true//boolean
 
 要准确判断一个变量是否是一个对象,可以使用constructor以及instanceof判断。
1. constructor是指该对象的构造函数, 使用constructor时, 要注意, 实例化类时, 类的prototype.constructor需要正确引用。
({}).constructor === Object;  //true
(1).constructor === Number;  //true
([]).constructor === Array;  //true
(‘1‘).constructor === String;  //true
(true).constructor === Boolean;  //true

 

2. instanceof是指该对象是否为指定类的实例
({}) instanceof Object;  //true
([]) instanceof Array;   //true
(1) instanceof Number;  //true
(‘1‘) instanceof String;  //true
(true) instanceof Boolean;  //true

 

JavaScript typeof obj === ‘object’ 这样写有什么问题

标签:

原文地址:http://www.cnblogs.com/facial/p/5797629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!