[AS3]as3数据类型检查写法(is/as/typeof/in/instanceof)用法介绍
1) is运算符
is运算符是ActionScript 3.0中的新增运算符,用来测试变量或表达式是否为给定的数据类型。is运算符检查正确的继承层次结构,不但能够检查对象是否为特定类的实例,而且还可以检查对象是否是用来实现特定接口的类的实例。早期版本中的instanceof运算符已不再使用。例如:
- var mySprite:Sprite = new Sprite();
- trace(mySprite is Sprite); // true
- trace(mySprite is DisplayObject); // true
- trace(mySprite is IEventDispatcher); // true
说明:创建一个Sprite类的名为mySprite的实例,使用is运算符来测试mySprite是否为Sprite和 DisplayObject类的实例,以及它是否实现了IEventDispatcher接口。
is运算符检查继承层次结构,并正确地报告mySprite是Sprite或DisplayObject的实例(Sprite类是 DisplayObject类的子类)。正确地报告mySprite实现IEventDispatcher接口(Sprite类是从实现IEventDispatcher 接口的EventDispatcher类继承的)。
早期版本中的instanceof运算符虽然能识别出mySprite是Sprite或DisplayObject的实例,但不能识别mySprite是否实现了IEventDispatcher接口。
(2) as运算符
as运算符是ActionScript 3.0中的新增运算符,也可用来检查表达式是否为给定数据类型。但是,与is运算符不同的是,as运算符不返回布尔值,而是返回表达式的值(代替true)或null(代替false)。在使用as运算符时,右侧的操作数必须是数据类型。如果尝试使用表达式(而非数据类型)作为右侧的操作数,将会产生错误。
例如:
- varmySprite:Sprite = new Sprite();
- trace(mySprite as Sprite); // [Sprite对象]
- trace(mySprite as DisplayObject); // [Sprite对象]
- trace(mySprite as IEventDispatcher); // [Sprite对象]
- trace(mySprite as Number); // null
(3) typeof运算符
用法为typeof expression,计算表达式expression并返回其数据类型的字符串。结果限制在6个可能的字符串值:boolean、function、number、object、string和xml。如果向用户定义的类应用此运算符,则结果为字符串object。之所以包括typeof运算符是为了向后兼容。使用is运算符可以检查类型是否兼容。表2-17说明对各个类型的表达式使用typeof运算符的结果。
热门文章推荐
- [Red5]Red5之Flash流媒体服务器的安装与使用教程完整版(组图)
- [rtsp]设置海康配置DDNS远程访问的用户手册(组图说明)
- [live555]live555直播rtsp流
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [FFmpeg]FFmpeg实现监控摄像头的RTSP协议转RTMP协议直播
- [海康]海康网络摄像机激活功能图文教程
- [RED5]搭建RED5直播用流媒体服务(搭直播环境)