javascript - js 有很多for循环应该在最开始用var 定义变量还是每个for内部用 var
怪我咯
怪我咯 2017-04-10 16:38:57
[JavaScript讨论组]

需要用到五个不同的for循环,每个都是
for(var i=0;i<a.length;i++)

我可以在最顶部定义一个
var i;
然后下面用i的时候不再写var,

for(i=0;i<a.length;i++)
可以这样写吗?
这样写和每次都写var相比,哪个占用内存最少?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(5)
迷茫

其实是一样的
因为无论是那种方法
在这个作用域中
i这个活动对象都存在
这个语句除了第一个

var i = 0 

语句其它的声明会被忽略
只有一个重复赋值的过程
然而内存的存储是不变的

迷茫

javascript中只有函数作用域和全局作用域.在函数体内用var定义的变量,会被提升到函数开始处进行定义,作用域为整个函数.所以你上面那样是没有关系的.

下面这样使可以进行引用的

function test(){
    alert(i);
    var i;
}

你可以在for循环中通过块变量进行循环:

for(let i=0;i<a.length;i++){}
ringa_lee

并没有什么不一样,反正js也是函数作用域,循环完成后无论如何i也不会销毁,所以并没有什么区别。

高洛峰

没有区别,重复定义会被编译器忽略的

PHPz

差不多啊,只不过在for循环开头写语义化比较明显,因为js没有块级作用域,这么出来可以很显然说明,循环可以这么写啊for (var i = 0, item; item = arr[i++];) {}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号