JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。但它们之间还是有区别的:
typeof
typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。
它返回值是一个字符串,该字符串说明运算数的类型。typeof 一般只能返回如下几个结果:
number,boolean,string,function,object,undefined。我们可以使用 typeof 来获取一个变量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错,对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性。
网上的一个小例子:
instanceof
instance:实例,例子
a instanceof b?alert("true"):alert("false"); //a是b的实例?真:假
instanceof 用于判断一个变量是否某个对象的实例,如 var a=new Array();alert(a instanceof Array); 会返回 true,同时 alert(a instanceof Object) 也会返回 true;这是因为 Array 是 object 的子类。再如:function test(){};var a=new test();alert(a instanceof test) 会返回
谈到 instanceof 我们要多插入一个问题,就是 function 的 arguments,我们大家也许都认为 arguments 是一个 Array,但如果使用 instaceof 去测试会发现 arguments 不是一个 Array 对象,尽管看起来很像。
另外:
测试 var a=new Array();if (a instanceof Object) alert('Y');else alert('N');
得'Y’
但 if (window instanceof Object) alert('Y');else alert('N');
得'N'
所以,这里的 instanceof 测试的 object 是指 js 语法中的 object,不是指 dom 模型对象。
使用 typeof 会有些区别
alert(typeof(window)) 会得 object
分享到:
相关推荐
JS中typeof与instanceof的区别
JS:typeof instanceof constructor prototype区别
JS中typeof与instanceof之间的区别总结.docx
本文是对JS中typeof与instanceof之间的区别进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
typeof用以获取一个变量或者表达式的类型而instanceof用于判断一个变量是否某个对象的实例,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
关于js typeof 与 instanceof 判断数据类型区别及开发使用.docx
输入类型允许将您的值与代表... // 'object'null instanceof Object //false [有趣的事实] Object.prototype与具有typeof和instanceof的null的结果相同正则表达式使用正则表达式文字,有人会希望typeof返回一个特定的值
在javascript中,typeof 和 instanceof 是用来判断数据类型比较通用的两个方法,这篇文章的目的是通过对这两个方法介绍来分析其存在的不足并提出优化方案。 typeof ——————————————————————...
JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。 它返回值是一个字符...
非常纠结,普遍的说法认为“这两个操作符或许是javascript中最大的设计缺陷,因为几乎不可能从他们那里得到想要的结果” typeof 说明:typeof返回一个表达式的数据类型的字符串,返回结果为js基本的数据类型,包括...
typeof用以获取一个变量的类型,typeof一般只能返回如下几个结果:number,boolean,string,function,object,undefined。我们可以使用typeof来获取一个变量是否存在,如 if(typeof a != “undefined”){},而不要去...
这次主要说说javascript的类型判断函数typeof和判断构造函数原型instanceof的用法和注意的地方。 typeof 先来说说typeof吧。首先需要注意的是,typeof方法返回一个字符串,来表示数据的类型。 typeof 是一个一元...
typeof('hello') // 高版本的 js 支持这种写法。输出: string 看起来是这样的: typeof 返回一个对象的类型的名字,即返回一个字符串 instanceof 用来判断左边的值是否属于右边的类型,返回布尔值 true 或 false...