你的位置:首页 > Java教程

[Java教程]javascript类型与类型检测


1.javascript类型:

-1_thumb5

注:包装对象:如“hello”.length实际为js为我们隐式创建了一个String临时对象,去调用该对象的length属性,调用过后再将该临时对象删除。

因此,如果原始类型变量使用.length,.toString()等js属性、方法等,用var str = new String(‘hello’)的效率要优于var str = ‘hello’,因为使用过程中无需再多次建立和删除临时包装对象。

2.javascript类型检测:

(1).typeof:适用于原始类型(除了null)和Function类型

     使用方法:例:typeof “hello” 返回 “string”

     可检测出类型变量的返回值:“类型”。如“number”,“boolean”

     不可检测出类型变量的返回值:“object”

(2).instanceof:基于原型链进行检测。用于对象类型。可用于原声对象和自定义对象。

     使用方法:[1,2] instanceof Array 返回 true;

     返回值:true / false

     自定义对象检测举例:

        image_thumb15

      注:iframe或window之间的自定义对象不可检测。

(3).Object.prototype.toString:适用于基本类型和对象类型。(ie6/7/8无法检测出null和undefined)

     使用方法:Object.prototype.toString.apply('a') 返回 "[object String]"

     返回值:"[object 类型]"。如"[object Array]","[object Null]"