示例:
if (foo) {}
if (foo != undefined) {}
if (foo != null) {}
try {foo} catch(e:Error) {}
给出编译器错误。我该如何防止这种情况?
回答(感谢Poke):
// declare the variable first
var foo:DisplayObject;
if (foo == null) {
trace('foo is null') // traces
}
答案 0 :(得分:2)
ActionScript 3是statically typed。这意味着必须先声明每个变量,然后才能以任何方式使用它们。声明变量与其初始化无关,其中变量第一次获取值;很多时候,两者都是在var myVar:uint = 2
之类的情况下同时完成的(这会将变量myVar
声明为uint
并使用值2
初始化它。)
因此,在您的情况下,您会收到一个错误,因为您正在访问尚未声明的变量,因此编译器不知道您尝试访问的名称。因此,在使用变量之前,您需要确保实际声明了变量。