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循环问题内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- typedef和var有什么不同(TypeScrip中泛型的案例详解)
- oracle中varchar2(byte)、varchar2(char)、nvarchar2()区别
- nvarchar(max)
- mysqltext与varchar区别(MySQL CHAR和VARCHAR该如何选择)
- MySQL中对varchar类型的排序
- mysql主键为什么用varchar(Mysql中varchar类型一些需要注意的地方)
- char、nchar、varchar、nvarchar、text、ntext的区别
- php数据类型图解(php使用filter_var函数判断邮箱,url,ip格式示例)
- ASP.NET匿名类型var
- for循环能有两个变量吗(关于var在for循环遇到的问题解决)
- .NET中dynamic和var的区别
- sqlparamter如何传递nvarchar(max) 参数
- mysql char和varchar区别(MySQL CHAR和VARCHAR存储、读取时的差别)
- 微商在朋友圈热卖的 DL减肥咖啡 含违禁药物,你还敢买吗(微商在朋友圈热卖的)
- 八一节,说说中国女兵(八一节说说中国女兵)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
- 庆八一,重读经典红色语录,感悟互联网发展硬道理(重读经典红色语录)
- TVB新剧《黯夜守护者》将播,陈展鹏陈炜首次合作探讨人性(TVB新剧黯夜守护者将播)
- 新晋小花被称女版吴卓羲 将取代滕丽名成为TVB新一代御用女警(新晋小花被称女版吴卓羲)
热门推荐
- pyqt复选框样式(基于PyQt4和PySide实现输入对话框效果)
- dedecms栏目页更改(dedecms系统列表页调用tag标签同时带上链接)
- nginx配置目录(nginx配置文件使用环境变量的操作方法)
- python自学编程笔记(Python 编程速成推荐)
- vuephp后台开发框架(Vue+thinkphp5.1+axios实现文件上传)
- 云服务器租用的因素(云服务器租用都需要注意什么?如何选择好的云服务器商?)
- mysql 多表连接查询(MySQL多表查询的具体实例)
- vue的路由模式有几种(Vue 路由返回恢复页面状态的操作方法)
- js怎么转拼音(js实现中文转拼音的完整步骤记录)
- mysqlset用法(mysql descDESCRIBE命令实例讲解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9