typeof、instanceof与constructor

typeof返回一个表达式的数据类型的字符串,返回结果为js基本的数据类型,包括number,boolean,string,object,undefined,function.

语法: typeof(data) 或 typeof data

instanceof则为判断一个对象是否为某一数据类型,或一个变量是否为一个对象的实例;返回boolean类型.
语法: o instanceof A

以下为综合实例:

 console.log("typeof(1):" + typeof(1));//number
 console.log("typeof(\"abc\"):" + typeof("abc"));//string
 console.log("typeof(true):" +typeof(true));//boolean
 console.log("typeof(2009-2-4):" + typeof(2009-2-4));//number
 console.log("typeof(\"2009-2-4\"):" + typeof("2009-2-4"));//string
 console.log("typeof(m):" + typeof(m));//undefined

 var d=new Date();
 console.log("typeof(d):" + typeof(d));//object

 function Person(){};
 console.log("typeof(Person):" + typeof(Person));//function

 var a=new Array();
 console.log("typeof(a):" + typeof(a));//object
 console.log("a instanceof Array:" + (a instanceof Array)); //true

 var h=new Person();
 var o={};
 console.log("h instanceof Person:" + (h instanceof Person));//true
 console.log("h instanceof Object:" + (h instanceof Object));//true
 console.log("o instanceof Object:" + (o instanceof Object));//true
 console.log(typeof(h));//object

使用typeof的一个不好的地方就是它会把Array还有用户自定义函数都返回为object.

var j=2;
console.log(typeof(j));//number
console.log("j.constructor:" + j.constructor);//function
console.log(typeof(j.constructor));//function

可以看到js.constructor返回的是一些字符串,大家都应该能看到这是一个function类型,此例为Number()为Number对象的构造函数,Number()用于将其参数转换为数字number类型,并返回转换结果(若不能转换则返回 NaN)。

因此在以后的js判断数据类型时可以使用以下方式来得到其详细数据类型

if((typeof o=="object") && (o.constructor==Number)){}

这里还要注意,constructor只能对已有变量进行判断,而typeof则可对未声明变量进行判断(返回undefined)。

时间: 2024-12-14 04:06:13

typeof、instanceof与constructor的相关文章

typeof + instanceof+toString+constructor是如何判断javascript数据类型的

一.typeof JS中的变量是松散类型(即弱类型)的,可以用来保存任何类型的数据. typeof 可以用来检测给定变量的数据类型,可能的返回值: 1. 'undefined' --- 这个值未定义: 2. 'boolean' --- 这个值是布尔值: 3. 'string' --- 这个值是字符串: 4. 'number' --- 这个值是数值: 5. 'object' --- 这个值是对象或null: 6. 'function' --- 这个值是函数. 测试: document.write(

JavaScript中typeof、toString、instanceof、constructor与in

JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定. 这也意味着你可以使用同一个变量保存不同类型的数据. 最新的 ECMAScript 标准定义了 7 种数据类型: 7种内置类型:Boolean.Null.Undefined.Number.String.Symbol (ECMAScript 6 新定义)和Object,除 Object 以外的所有类型都是不可变的(值本身无法被改变). 一.typeof typeof操作符返回一个

推断js中的类型:typeof / instanceof / constructor / prototype

怎样推断js中的类型呢,先举几个样例: var a = "jason"; var b = 123; var c = true; var d = [1,2,3]; var e = new Date(); var f = function(){ alert('jason'); }; 一.最常见的推断方法:typeof typeof是一个一元运算符,它返回的结果始终是一个字符串,对不同的操作数,它返回不同的结果,另外typeof能够推断function的类型:在推断除Object类型的对象时

详解js中typeof、instanceof与constructor

详解js中typeof.instanceof与constructor typeof返回一个表达式的数据类型的字符串,返回结果为js基本的数据类型,包括number,boolean,string,object,undefined,function.语法为typeof(data) 或 typeof data instanceof则为判断一个对象是否为某一数据类型,或一个变量是否为一个对象的实例;返回boolean类型 语法为 o instanceof A 以下为综合实例: 1<script type

JavaScript中typeof、toString、instanceof与constructor

JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定. 这也意味着你可以使用同一个变量保存不同类型的数据. 最新的 ECMAScript 标准定义了 7 种数据类型: 6种原始类型:Boolean.Null.Undefined.Number.String.Symbol (ECMAScript 6 新定义)和Object,除 Object 以外的所有类型都是不可变的(值本身无法被改变). 一.typeof typeof操作符返回一个

判断js中的类型:typeof / instanceof / constructor / prototype

如何判断js中的类型呢,先举几个例子: var a = "jason"; var b = 123; var c = true; var d = [1,2,3]; var e = new Date(); var f = function(){ alert('jason'); }; 一.最常见的判断方法:typeof typeof是一个一元运算符,它返回的结果始终是一个字符串,对不同的操作数,它返回不同的结果,另外typeof可以判断function的类型:在判断除Object类型的对象时

JavaScript类型检测, typeof操作符与constructor属性的异同

*#type.js function Person(name, age) { this.name = name; this.age = age; } var d = {an: 'object'}; var a = ['apple', 'banana']; var f = function() {}; var s = 'David'; var n = 33; var b = true; var o = new Object(); var person = new Person('Mark', 22

typeof、instanceof和constructor

1.js中判断是否是对象经常用到这三个关键字或者属性.下面一一介绍: (1)typeof运算符,通常会返回:"undefined"."object"."boolean"."number" 和 "string"的字符串.数组和对象都返回"object".数组和对象的typeof返回一致为"object". var o = {age: 20}; typeof o //&q

判断对象类型 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"(可用于