ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

for var 和 let

2022-07-13 13:34:56  阅读:119  来源: 互联网

标签:单击 作用域 xxx 响应函数 let var


var 有变量提升
let 没有变量提升 不能重复声明 只在块级作用域生效
块级作用域:{}

var

  • var 有变量提升

  • var i 提升到全局作用域window 每次循环代码块执行之前给 i 赋值

  • 又因为for是同步代码 btns的单击响应函数是 异步代码

  • js是单线程的:先执行同步代码 再 执行异步代码

  • 由于for是同步代码 所以 for 循环完之后 才会 执行单击响应函数

  • 每次for 都给 i 赋值 所以 i 会被一直重复声明并赋值 直到不满足条件 i = 3

  • 所以 btns 的单击响应函数执行时 i 始终为 3

let

  • let没有变量提升

  • 只在块级作用域中生效,不能重复声明,但不影响作用域链

  • 每次for循环的块级作用域是不同的,所以避免了let的重复声明

  • 每次for循环都 let i = xxx

  • 关键是let只会在当前块级作用域中生效

  • 所以单击响应函数执行时 i 始终为 xxx 不会改变

  • 下次单击响应函数执行前 let i = xxx + 1

  • 下次单击响应函数执行时 i 为 xxx + 1

标签:单击,作用域,xxx,响应函数,let,var
来源: https://www.cnblogs.com/imycc/p/16473484.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有