Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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
Javascript 声明循环变量最佳实践_Javascript_Coding Style - Fatal编程技术网

Javascript 声明循环变量最佳实践

Javascript 声明循环变量最佳实践,javascript,coding-style,Javascript,Coding Style,我的问题更多的是关于for循环样式的好奇问题。 在阅读别人编写的一些旧代码时,我遇到了一种以前从未见过的风格 var declaredEarlier = Array for(var i=0, length=declaredEarlier.length; i < length; i++) { //stuff } 我从未见过在使用前声明长度,因为这是一个旧的应用程序,这种风格是C/C++/旧Java遗留下来的吗?或者这个开发者是独一无二的? 以这种方式声明长度而不是像我通常做的那样有

我的问题更多的是关于for循环样式的好奇问题。 在阅读别人编写的一些旧代码时,我遇到了一种以前从未见过的风格

var declaredEarlier = Array
for(var i=0, length=declaredEarlier.length; i < length; i++) {
    //stuff
}
我从未见过在使用前声明长度,因为这是一个旧的应用程序,这种风格是C/C++/旧Java遗留下来的吗?或者这个开发者是独一无二的? 以这种方式声明长度而不是像我通常做的那样有什么好处:

for(var i=0; i < declaredEarlier.length; i++) {
    //stuff
}

如果以前有人问过,我找不到。如果没有stackoverflow,那么哪个论坛更适合提问?

有两个原因可以让你这样提前了解长度:

如果长度可能更改,请记住,JavaScript数组*及其长度不是固定的,您希望使用原始长度来限制循环,或者

避免重复查找对象的长度,因为您知道它不会改变

第一个显然是实质性的;第二是风格和/或微观优化


*披露:这是我贫血小博客上的一篇帖子的链接。

对于第一种风格,declaredEarlier的价值可能会改变,所以你需要使用它 比如说长度=提前宣布


但是对于第二种样式,您已经知道在现代JavaScript中不需要再次计算它的值了,您应该使用方法或a来代替。对于Java背景的JavaScript来说,这还是比较新的。我从来没有考虑过你的第一点。你的意思是,在我的FrRoop中间,我或其他东西可以改变数组长度,我会无意中增加了我的循环长度?只是测试了我的假设。看起来是的!我习惯于数组长度恒定的Java。谢谢你的洞察力!