Mat*_*ley 28 actionscript actionscript-2 actionscript-3
在ActionScript中,如何测试对象是否已定义,即非空?
Mat*_*ley 35
测试是否定义了一个对象
这适用于AS2和AS3,并且是测试对象是否具有值的最可靠方法.
if (obj != null) {
doSomethingWith(obj);
}
Run Code Online (Sandbox Code Playgroud)
它也是测试对象属性并在同一表达式中读取它的最可靠方法:
if (arr[0] != null && arr[0]>5) {
doSomethingWith(arr[0]);
}
Run Code Online (Sandbox Code Playgroud)
测试一个对象是否为null
null和undefined之间有区别,但是如果你不在乎你可以在任何一个之间做一个正常的比较,因为它们比较相等:
if (obj == null) {
doSomethingWith(obj);
}
Run Code Online (Sandbox Code Playgroud)
是相同的
if (obj == undefined) {
doSomethingWith(obj);
}
Run Code Online (Sandbox Code Playgroud)
如果您关心差异,请使用===或!==运算符,它不会转换它们.
if (obj === undefined) {
// obj was never assigned a value
}
else if (obj === null) {
// obj was explicitly set to null
}
else {
doSomethingWith(obj);
}
Run Code Online (Sandbox Code Playgroud)
对于ActionScript 3.0,如果你想要的只是对虚无的通用测试,那么它很容易:
var a;
var b;
var c;
var d;
a = undefined;
b = null;
c = 5;
if (a)
trace(a);
if (b)
trace(b);
if (c) // Will trace
trace(c);
if (d)
trace(d);
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,只会c
跟踪.这通常是我需要的,只是检查if (obj)
是最易读的版本.
此方法使用隐式转换为布尔值(也称为布尔强制),以及将强制转换为false的值的详细信息以及将强制转换为真实值的详细信息遵循ECMA标准,并且还专门针对ActionScript进行了记录.
归档时间: |
|
查看次数: |
39633 次 |
最近记录: |