Javascript typeof与instanceof的区别
2016-10-18 00:00
766 查看
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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
谈谈我对JavaScript中typeof和instanceof的深入理解
浅谈javascript中的instanceof和typeof
JavaScript中instanceof与typeof运算符的用法及区别详细解析
JS中typeof与instanceof之间的区别总结
javascript之typeof、instanceof操作符使用探讨
关于javascript中的typeof和instanceof介绍
javascript instanceof,typeof的区别
javascript instanceof 与typeof使用说明
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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化谈谈我对JavaScript中typeof和instanceof的深入理解
浅谈javascript中的instanceof和typeof
JavaScript中instanceof与typeof运算符的用法及区别详细解析
JS中typeof与instanceof之间的区别总结
javascript之typeof、instanceof操作符使用探讨
关于javascript中的typeof和instanceof介绍
javascript instanceof,typeof的区别
javascript instanceof 与typeof使用说明
相关文章推荐
- javascript之小积累-.-typeof与instanceof的区别
- [JavaScript]typeof和instanceof的区别
- javascript typeof 和 instanceof 的区别和联系
- javascript instanceof运算符 以及和 typeof的区别
- instanceof和typeof运算符的区别详解
- JavaScript之检测类型(typeof与instanceof)
- js typeof 和instanceof的区别
- typeof和instanceof的区别
- instanceof和typeof运算符的区别详解
- javascript之typeof、constructor、instanceof
- instanceof和typeof运算符的区别详解
- javascript中,typeof和instanceof
- typeof和instanceof的区别
- js typeof 与 instanceof的区别
- Javascript中typeof instanceof constructor的区别
- JavaScript instanceof理解及与typeof对比
- typeof与instanceof的区别
- 深入理解javascript之typeof和instanceof
- JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
- typeof与instanceof的区别