Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在AS3的循环中还是在循环之前声明变量?_Actionscript 3_Variables_For Loop - Fatal编程技术网

Actionscript 3 在AS3的循环中还是在循环之前声明变量?

Actionscript 3 在AS3的循环中还是在循环之前声明变量?,actionscript-3,variables,for-loop,Actionscript 3,Variables,For Loop,我应该在循环之前声明mcContainer变量还是否?(性能提升?) for(var i:uint=\u startIndex;i测试并不难 …但是根据文档,这不会有任何区别,因为变量声明无论如何都会被提升到方法块的顶部 发件人: 缺少块级作用域的一个有趣的含义是,只要在函数结束之前声明变量,就可以在声明变量之前读取或写入变量。这是因为有一种称为提升的技术,这意味着编译器将所有变量声明移到函数的顶部 第二个选项更快,请看一下:@george,该页的哪一部分与此问题相关?我找不到任何东西。@spe

我应该在循环之前声明mcContainer变量还是否?(性能提升?)


for(var i:uint=\u startIndex;i测试并不难

…但是根据文档,这不会有任何区别,因为变量声明无论如何都会被提升到方法块的顶部

发件人:

缺少块级作用域的一个有趣的含义是,只要在函数结束之前声明变量,就可以在声明变量之前读取或写入变量。这是因为有一种称为提升的技术,这意味着编译器将所有变量声明移到函数的顶部


第二个选项更快,请看一下:@george,该页的哪一部分与此问题相关?我找不到任何东西。@spender“我们还可以通过将数组的长度存储在循环外部的变量中来加快循环速度”在“来自其他类的常量”之前…u是对的…不是简单的sight@george-profenza但是数组的长度在不同的情况下是不同的,因为如果每次循环调用时不使用变量来引用长度,则需要反复获取数组的长度。但是在我的情况下,我想知道如果我声明变量,它会改变什么吗E,它是循环之前的类型,所以循环时它不会每次声明新的变量。好的,我明白了。在你的例子中,正如@ SPEnter所提到的,它不应该有一个不同的优点。当我在AS3中开发时,这已经咬了我好几次。其他编译器,比如C++(甚至java)。在将变量声明为编译时错误之前识别使用该变量。根据Flex编码惯例:我认为我必须仅在使用变量之前声明变量,这将提高性能,但由于您的文档引用,我发现这一点并没有实现。:]谢谢!在使用变量之后声明变量会降低代码的易读性我的意见是,在使用之前应该声明它们——在最坏的情况下是在同一行中。但不能在以后。
for(var i:uint = _startIndex; i <= _endIndex; ++i){    
    var _mcContainer:MovieClip = _mcParent["i_" + _position];
}
var _mcContainer:MovieClip;
for(var i:uint = _startIndex; i <= _endIndex; ++i){
    _mcContainer = _mcParent["i_" + _position];
}