扫码关注官方订阅号
需要用到五个不同的for循环,每个都是for(var i=0;i<a.length;i++)
我可以在最顶部定义一个var i;然后下面用i的时候不再写var,
for(i=0;i<a.length;i++)可以这样写吗?这样写和每次都写var相比,哪个占用内存最少?
走同样的路,发现不同的人生
其实是一样的因为无论是那种方法在这个作用域中i这个活动对象都存在这个语句除了第一个
var i = 0
语句其它的声明会被忽略只有一个重复赋值的过程然而内存的存储是不变的
javascript中只有函数作用域和全局作用域.在函数体内用var定义的变量,会被提升到函数开始处进行定义,作用域为整个函数.所以你上面那样是没有关系的.
下面这样使可以进行引用的
function test(){ alert(i); var i; }
你可以在for循环中通过块变量进行循环:
for(let i=0;i<a.length;i++){}
并没有什么不一样,反正js也是函数作用域,循环完成后无论如何i也不会销毁,所以并没有什么区别。
没有区别,重复定义会被编译器忽略的
差不多啊,只不过在for循环开头写语义化比较明显,因为js没有块级作用域,这么出来可以很显然说明,循环可以这么写啊for (var i = 0, item; item = arr[i++];) {}
for
for (var i = 0, item; item = arr[i++];) {}
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
其实是一样的
因为无论是那种方法
在这个作用域中
i这个活动对象都存在
这个语句除了第一个
语句其它的声明会被忽略
只有一个重复赋值的过程
然而内存的存储是不变的
javascript中只有函数作用域和全局作用域.在函数体内用var定义的变量,会被提升到函数开始处进行定义,作用域为整个函数.所以你上面那样是没有关系的.
下面这样使可以进行引用的
你可以在for循环中通过块变量进行循环:
并没有什么不一样,反正js也是函数作用域,循环完成后无论如何i也不会销毁,所以并没有什么区别。
没有区别,重复定义会被编译器忽略的
差不多啊,只不过在
for
循环开头写语义化比较明显,因为js没有块级作用域,这么出来可以很显然说明,循环可以这么写啊for (var i = 0, item; item = arr[i++];) {}