在循环中定义变量是否重要?

Max*_*Max 1 variables flash performance definition actionscript-3

这是我写的一段代码.

var cList:XMLList = xml.defines.c;
var className:String;
var properties:XMLList;
var property:XML;
var i:int,l:int;
var c:XML;

for each(c in cList)
{
    className = String(c.@name);

    if(cDict[className])
    {
        throw new Error('class name has been defined' + className);
    }

    if(className)
    {
        cDict[className] = c;
    }

    properties = c.property;

    i = 0,
    l = properties.length();

    if(l)
    {
        propertyDict[className] = new Dictionary();

        for(;i<l;i++)
        {
            // ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我定义了循环之外的所有变量.我总是担心,如果我在循环中定义它们,它可能会降低处理速度,虽然我没有证据 - 这只是一种感觉.

我也不喜欢as3语法允许在定义之前使用变量名.所以我总是在我的函数的最开始定义变量.

现在我担心这些习惯可能会在某一天适得其反.或者只是个人品味的问题?

Pat*_*ick 5

不,它不重要,因为编译器使用变量提升,因此这意味着编译器将所有变量声明移动到函数的顶部:

有关变量的更多解释:http: //help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f9d.html