typeof、instanceof和constructor

1.js中判断是否是对象经常用到这三个关键字或者属性。下面一一介绍:

(1)typeof运算符,通常会返回:"undefined"、"object"、"boolean"、"number" 和 "string"的字符串。数组和对象都返回"object"。数组和对象的typeof返回一致为"object"。

var o = {age: 20}; typeof o  //"object"
var a = [1,2,3]; typeof a   //"object"
var n = 20; typeof n   //"number"
var b; typeof b   //"undefined"
var f = false; typeof b   //"boolean"
var s = ‘str‘; typeof s   //"string"

  (2)instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上。可以区分数组和对象。

var a = {s:2}; a instanceof Object   //true

var a = [2]; a instanceof Object  //true
var a = [2]; a instanceof Array  //true

var a = 1; a instanceof Number   //false
var a = new Number(1); a instanceof Number   //true

var a = ‘3‘; a instanceof String   //false
var a = new String(‘3‘); a instanceof String    //true

function Person(){};
var p =new Person();
console.log(p instanceof Person);  //true

  (3)constructor返回对创建此对象的数组函数的引用。可以区分数组和对象。

//用法一:
var a = {name:2}; a.constructor === Object    //true
var a = [1,2]; a.constructor === Object    //false
var a = 1; a.constructor === Number    //true
var a = ‘test‘; a.constructor === String    //true
var a = new Date();a.constructor === Date    //true

//用法二:
function employee(name,job,born) {
    this.name=name;
    this.job=job;
    this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);
document.write(bill.constructor);

function employee(name,job,born) {
    this.name=name;
    this.job=job;
    this.born=born;
}

原文地址:https://www.cnblogs.com/lixuemin/p/9004172.html

时间: 2025-01-17 04:30:50

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

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

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