首页 > 代码库 > AS3中 is,as,typeof的区别

AS3中 is,as,typeof的区别

var my_num:Number=9;
trace(typeof my_num);
var my_object:Array=["语文","数学","英语"];
trace(my_object is Array);
trace(my_object as Array)

//typeof 是用字符串形式返回对象的类型.
//is 用于判断一个对象是否属于一种类型.
//as 与is格式一致,但内容不同,如果一个对象属于一种类型.那么as返回这个对象,否则返回null.

 

 

1.is——判断对象/类是否属于某一类,返回布尔值
例:123 is Number
返回:true
例:int is Object
返回:true
 
2.as——弱转换,不会丢失数据,仅在类型链有效(转换为父类对象),失败返回null
例: 123 as uint
返回:123
例:123 as string
返回:null
注:在很多情况下,类型不符时编译器会自动进行弱转换
 
3.Class(object)——强转换,可能丢失数据,适用范围较广,失败抛出错误
例:int(123.45)
返回 123
 
4.typeof——以字符串形式返回对象的类型,不推荐使用
例:typeof "test"
返回:"string"
 
5.instanceof——和is相同,但不能判断接口,不推荐使用
 
6.getDefinitionByName——根据类名获取类
 
7.getQualifiedClassName——获取完整类名
 
8.getQualifiedSuperclassName——获取完整父类名
 
9.constructor根据对象获取类,需要转换为Object对象否则编译不通过
例:obj1.constructor
返回:[class Object]

AS3中 is,as,typeof的区别