typeof 和instanceof

1.typeof

首先来看typeof的测试结果

 1 //1.typeof 判定 非构造函数 数据类型
 2 var a = ‘123‘;        //typeof a === string
 3 var b = 123;          //typeof b === number
 4 var c = true;          //typeof c === boolean
 5 var d = function(){};//typeof d === function
 6 var e = {};             //typeof e === object
 7 var f = undefined;     //typeof f === undefined
 8 var g = null;         //typeof g === object
 9 var h = ‘‘;             //typeof h === string
10 var i;                 //typeof i === undefined
11 var j = [];             //typeof j === object
12 结论:typeof 判定非构造函数数据类型, 能识别的类型为:string,number,boolean,function,undefined,object
13 其中对象,数组,null都判定为object,也就是说typeof不识别Array,typeof arr === Array返回值为flase
14
15 //2.typeof 判定 构造函数 数据类型
16 var a = new String(‘123‘);        //typeof a === object
17 var b = new Number(123);          //typeof b === object
18 var c = new Boolean(true);          //typeof c === object
19 var d = new function(){};         //typeof d === object
20 var e = new Object();             //typeof e === object
21 var f = new Array();             //typeof f === object
22 var g = new Date();                 //typeof g === object
23 结论:typeof 判定构造函数数据类型全部返还object

2.instanceof

instanceof运算符可以用来判断某个构造函数的prototype属性是否存在另外一个要检测对象的原型链上。

实例一:普遍用法

A instanceof B :检测B.prototype是否存在于参数A的原型链上.

function Ben() {
}
var ben = new Ben();
console.log(ben instanceof Ben);//true

实例二:继承中判断实例是否属于它的父类

function Ben_parent() {}
function Ben_son() {}
Ben_son.prototype = new Ben_parent();//原型继承
var ben_son = new Ben_son();
console.log(ben_son instanceof Ben_son);//true
console.log(ben_son instanceof Ben_parent);//true

 实例三:复杂用法

function Ben() {}
console.log(Object instanceof Object);     //true
console.log(Function instanceof Function); //true
console.log(Function instanceof Object);   //true
console.log(Ben instanceof Function);      //true
console.log(String instanceof String);   //false
console.log(Boolean instanceof Boolean); //false
console.log(Ben instanceof Ben);         //false

  

时间: 2024-10-18 02:31:14

typeof 和instanceof的相关文章

typeof与instanceof

最近买了部安卓的手机,google nexus5 系统是安卓4.4.2. 刚到手就发现链接wifi有问题,一直在获取ip(obtaining ip...)和验证.试过恢复出厂 重启 各种都不管用,只有设置静态ip才可以,但是不能一直这样子呀!! 查了下路由器,路由器已经分配了地址.所以最大可能就是安卓手机上拿到这个地址没有成功写入配置文件,为什么没有写入呢,就是权限的问题了,不明白为什么google会出现这个错误. 因为不熟悉安卓系统,所以查了好几天,终于在一个外国网站上发现了下面这个解决办法,

JS中 typeof 与 instanceof 的区别

JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的:typeof是一个一元运算,放在一个运算数之前,运算数可以是任意类型.它返回值是一个字符串,该字符串说明运算数的类型.typeof 一般只能返回如下几个结果:number,boolean,string,function,object,undefined.(Array,Null 均返回 object ,无法判断这些类型)例子: typeof(1): number

typeof()和instanceof()用法区别

typeof()和instanceof()用法区别: 两者都是用来判断数据类型的 typeof()是能用来判断是不是属于五大类型Boolean,Number,String,Null,Undefined的,是比较宏观的判断: instanceof()判断数据类型相对typeof()来说更深入,能判断更具体的,比如Array,object,Boolean,Number,Strin等.

javascript typeof 和 instanceof 的区别和联系

JavaScript 中 typeof和instanceof都可以用来判断一个变量是否为空,或者是什么数据类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型. 它返回值是一个字符串,该字符串说明运算数的类型,因此如果想要判断是什么类型则是采用字符串判断的方法(加引号)来判断是否一致. typeof 一般只能返回的是基本的数据类型,如下几种: number, boolean, string, function, object, u

js中typeof和instanceof用法区别

typeof和instanceof的区别 typeof和instanceof都可以用来判断变量,它们的用法有很大区别: typeof会返回一个变量的基本类型,只有以下几种:number,boolean,string,object,undefined,function:例: alert(typeof(1));//number alert(typeof("abc"));//string alert(typeof(true));//boolean alert(typeof(m));//und

JS中typeof与instanceof的区别 (2010-05-26 10:47:40

JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型. 它返回值是一个字符串,该字符串说明运算数的类型.typeof 一般只能返回如下几个结果: number,boolean,string,function,object,undefined.我们可以使用 typeof 来获取一个变量是否存在,如 if(typeof a!="un

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

typeof:  typeof是一个一元运算符,放在一个运算数之前. "boolean"---如果这个值是布尔值. "string"---如果这个值是字符串. "number"---如果这个值是数值. "undefined"---如果这个值未定义. "object"---如果这个值是对象(包括Number,String,Boolean这样的包装对象),数组或null. "function"

JS中typeof与instanceof的区别

JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型. 它返回值是一个字符串,该字符串说明运算数的类型.typeof 一般只能返回如下几个结果: number,boolean,string,function,object,undefined.我们可以使用 typeof 来获取一个变量是否存在,如 if(typeof a!="un

javascript中typeof与instanceof的区别

JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型. 它返回值是一个字符串,该字符串说明运算数的类型.typeof 一般只能返回如下几个结果: number,boolean,string,function,object,undefined.我们可以使用 typeof 来获取一个变量是否存在,如 if(typeof a!="un