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

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
时间: 2024-12-15 21:40:31

JavaScript typeof obj === ‘object’ 这样写有什么问题的相关文章

细说javascript typeof操作符

细说javascript typeof操作符 typeof定义 typeof是一元运算符,用来返回操作数类型的字符串.下面是ECAMScript5.1关于typeof的标准定义: NOTE:上面表格标红处应为“object”. typeof疑惑 Value Class Type ------------------------------------- null null object "foo" String string new String("foo") St

Javascript中typeof()为object类型的变量才可以添加属性

代码01:int var a = 10; a.name = "HelloWorld"; alert(a.name); 输出 undefined 代码02: string var a = "abc"; a.name = "HelloWorld"; alert(a.name); 输出 undefined 代码03: String var a = new String(); a.name = "HelloWorld"; alert(

es6 javascript对象方法Object.assign()

es6 javascript对象方法Object.assign() 2016年12月01日 16:42:34 阅读数:38583 1  基本用法 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). [javascript] view plain copy var target = { a: 1 }; var source1 = { b: 2 }; var source2 = { c: 3 }; Object.assig

Javascript中的Object类

Object类是Javascript中最基本的类,用来创建普通对象,通常用这些对象存储数据. 1.Object对象 1.1.创建Object对象 创建Object对象有两种方式 第一种创建方式:new Object() var obj = new Object(); 第二种创建方式:{} var obj = {}; var obj2 = {"name":"tom","age":24}; 1.2.添加属性 obj.firstname = "

判断对象类型 typeof instanceof Object.prototype.tostring()

常见的有三种方法  1, typeof  2, instance of   3, object.prototype.toString.apply(); 1,typeof  typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于

Javascript中的Object对象

Object是在javascript中一个被我们经常使用的类型,而且JS中的所有对象都是继承自Object对象的.虽说我们平时只是简单地使用了Object对象来存储数据,并没有使用到太多其他功能,但是Object对象其实包含了很多很有用的属性和方法,尤其是ES5增加的方法,因此,本文将从最基本的介绍开始,详细说明了Object的常用方法和应用. 回到顶部 基础介绍 创建对象 首先我们都知道,对象就是一组相似数据和功能的集合,我们就是用它来模拟我们现实世界中的对象的.那在Javascript中,创

JavaScript typeof运算符和数据类型

// js有6种数据类型:Undefined.Null.Boolean.String.Number.Object //(01)typeof console.log(typeof undefined); //undefined console.log(typeof null); //object :特殊1 console.log(typeof true); //boolean console.log(typeof ''); //string console.log(typeof 0); //num

详解Javascript中的Object对象

Object是在javascript中一个被我们经常使用的类型,而且JS中的所有对象都是继承自Object对象的.虽说我们平时只是简单地使用了Object对象来存储数据,并没有使用到太多其他功能,但是Object对象其实包含了很多很有用的属性和方法,尤其是ES5增加的方法,因此,本文将从最基本的介绍开始,详细说明了Object的常用方法和应用. 基础介绍 创建对象 首先我们都知道,对象就是一组相似数据和功能的集合,我们就是用它来模拟我们现实世界中的对象的.那在Javascript中,创建对象的方

javascript typeof用法小测

<html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title></title>     <script type="text/javascript">                                     function show(){                 //typeof后跟参数,返回的是表示该参数类型的字符串