AS3中 is,as,typeof的区别

Posted dongyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的区别的主要内容,如果未能解决你的问题,请参考以下文章

flash as3.0中int和Number的区别

as3 object与dictionary区别

flash as3中event/evt/e三者的区别是啥?

AS3.0中event:MouseEvent和e:MouseEvent的区别?

typeof 和 is 关键字有啥区别?

AS3 setTimeOut,setInterval,Timer 的区别和用法