Js/es for(let i in Obj)效率分析及优化

来源:互联网 发布:网络安全意识 责任心 编辑:程序博客网 时间:2024/06/07 09:08

先上个例子

let obj={o:"o",o1:"o1"};for(let i in obj){setTimeout(function(){    console.log(i);});}

输出结果:
这里写图片描述
惊不惊喜意不意外?
哇嘎嘎,原来在循环中使用let声明循环变量i,每次循环都会声明一块新的内存去保存此次的循环变量值,虽然是同一个名称i。

优化使用var声明

let obj={o:"o",o1:"o1"};for(var i in obj){setTimeout(function(){    console.log(i);});}

输出结果:
这里写图片描述

使用var声明的循环变量只会保留一块内存,每次只是给这块内存赋值而已。i指向的是同一个指针。

原创粉丝点击