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

 

相关文章:

  • 2022-12-23
  • 2021-12-23
  • 2022-12-23
  • 2021-07-24
  • 2022-12-23
  • 2022-01-02
  • 2021-08-15
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-23
  • 2021-12-30
  • 2021-10-17
  • 2021-07-20
  • 2021-12-04
相关资源
相似解决方案