for循环能有两个变量吗(关于var在for循环遇到的问题解决)
类别:编程学习 浏览量:971
时间:2021-10-14 00:07:07 for循环能有两个变量吗
关于var在for循环遇到的问题解决前言
var是ES5定义变量的一种声明方式,一直听说var声明变量,存在循环变量泄漏为全局变量问题,但总是想不明白这个“全局”有什么影响,还有,到底什么时候输出的结果是递增/减的值,什么时候输出一样的值,也不清楚。
问题复现
for (var i = 1; i <= 5; i++) { setTimeout(function timer() { console.log(i) }, i * 1000) }
预期效果:12345
打印结果:66666
解决方式
闭包
for (var i = 1; i <= 5; i++) { (function (j) { setTimeout(function timer() { console.log(j) }, j * 1000) })(i) }
setTimeout 第三参数
for (var i = 1; i <= 5; i++) { setTimeout( function timer(j) { console.log(j) }, i * 1000, i ) }
使用 let 定义 i
for (let i = 1; i <= 5; i++) { setTimeout(function timer() { console.log(i) }, i * 1000) }
let
关于let,记住:当前的i只在本轮循环有效,每一次循环的i其实都是一个新的变量。
JavaScript 引擎内部会记住上一轮循环的值,初始化本轮的变量i时,就在上一轮循环的基础上进行计算。
另外,for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。
for (let i = 0; i < 3; i++) { let i = 'abc'; console.log(i); } // abc // abc // abc
总结
到此这篇关于var使用for循环遇到的问题解决的文章就介绍到这了,更多相关var for循环问题内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- MySQL中对varchar类型的排序
- mysql主键为什么用varchar(Mysql中varchar类型一些需要注意的地方)
- sqlparamter如何传递nvarchar(max) 参数
- .NET中dynamic和var的区别
- nvarchar(max)
- ASP.NET匿名类型var
- mysql char和varchar区别(MySQL CHAR和VARCHAR存储、读取时的差别)
- oracle中varchar2(byte)、varchar2(char)、nvarchar2()区别
- for循环能有两个变量吗(关于var在for循环遇到的问题解决)
- char、nchar、varchar、nvarchar、text、ntext的区别
- mysqltext与varchar区别(MySQL CHAR和VARCHAR该如何选择)
- typedef和var有什么不同(TypeScrip中泛型的案例详解)
- php数据类型图解(php使用filter_var函数判断邮箱,url,ip格式示例)
- 越南没事(越南没事情做)
- 重庆旅游攻略(重庆旅游3-4天攻略最佳线路)
- 周杰伦演唱会门票(周杰伦演唱会门票多少钱一张2023)
- 焕然一新 成都轨道集团官方网站改版上线(成都轨道集团官方网站改版上线)
- 成都轨道交通19号线二期全线电通(成都轨道交通19号线二期全线电通)
- 19号线二期全线电通 轨道交通项目最新进展来了(19号线二期全线电通)
热门推荐
- sqlserver调试存储过程(sql server2008调试存储过程的完整步骤)
- 香港云服务器租赁流程(租用香港云服务器的三大注意事项)
- 云服务器如何选供应商(如何选择云服务器运营商?)
- dedecms怎么调用标签(织梦DEDECMS dede:arclist,dede:list获取附加表字段内容的方法)
- python中的1和0(python把1变成01的步骤总结)
- css中id和类的区别(CSS新增的:where和:is伪类函数是什么)
- iview 全局初始化组件(iview 权限管理的实现)
- html5移动app开发实战(html5启动原生APP总结)
- thinkphp继承model如何使用(Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解)
- sql设置注释(SqlSever 注释符 单行注释与多行注释)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9