微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

(20120710)flex中的undefined类型

1、一个适用于尚未初始化的无类型变量或未初始化的动态对象属性的特殊值。在 ActionScript 3.0 中,只有无类型变量才能采用值 undefined,这在 ActionScript 1.0 和 ActionScript 2.0 中并非如此。例如,以下两个变量都是undefined,因为它们都未类型化或初始化:

 

Actionscript代码  

收藏代码

  1. var foo;   
  2.   
  3. var bar:*;   

undefined 值还适用于动态对象的未初始化或未定义的属性。例如,如果某对象是 Object 类的一个实例,则除非向该属性赋予值,否则动态添加的任何属性的值将为 undefined

将 undefined 用于不同的函数时,结果也不相同:

  • 由 String(undefined) 返回的值为 "undefined"undefined 转换为字符串)。
  • 由 Number(undefined) 返回的值为 NaN
  • 由 int(undefined) 和 uint(undefined) 返回的值为 0。
  • 由 Object(undefined) 返回的值为新的 Object 实例。
  • 向类型变量赋予值 undefined 时,该值将转换为该数据类型的认值。

不要混淆 undefined 和 null使用等于运算符 (==) 对 null 和 undefined 进行比较时,它们的比较结果为相等。但是,使用全等运算符 (===) 对 undefined 进行比较时,它们的比较结果为不相等

 

在以下示例中,将声明(但不初始化)一个无类型变量 myVarmyVar 的值为 undefined,因为该变量是一个无类型变量。无论变量是没有类型注释,还是使用特殊的 (*) 无类型注释 (var myVar:*;),都是如此。

 

Actionscript代码  

收藏代码

    // trace value of untyped and uninitialized variable  
  1. var myVar;  
  2. trace(myVar); // undefined  

 

该规则同样适用于动态对象的未初始化属性。例如,给定实例 obj(属于动态类 A),obj.propNameobj 实例的未初始化属性)的值为 undefined

 

dynamic class A {}  
  • var obj:A = new A()  
  •   
  • // trace undefined property of obj  
  • trace(obj.propName); // undefined  
  •  

    2、判断undefined的问题

     

    上面的介绍中已经介绍了几种,即通过类型转换再进行判断,还有一种方法

     

     

    Actionscript代码  

    收藏代码

      //arr is a undefined attribute of obj  
    1. if(obj.arr)  


    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

    相关推荐