对于for循环中使用let或var时,i的作用域范围的记录

在for循环中使用let时,结果如下

 

for内部定义的i在循环结束后不会覆盖外部的i

 

 

 

在for循环中使用var,且不控制i的作用域时,结果如下

 

 

第一个for循环内部定义的i并不会创建,而是直接使用外部中的i,故在循环结束时外部的i变为了5。

第二个for循环直接使用了外部的i

 

 

 

把第一个for循环存于匿名函数中,第二个for循环使用var创建变量i,结果如下

 

 

第一个for循环置于匿名函数,会创建一个在作用域在匿名函数的i,第二个for循环并未创建i而是直接对外部的i进行赋值

 

在for循环中使用var创建变量,结果如下

内部使用var创建的变量可以在for循环外部获取,而i不可获取

 

在for循环中使用let创建变量,结果如下

在for循环内部使用let创建变量时,for循环外部不能获取该变量。

哪怕在let定义的代码块中,使用var创建变量还是会让该变量存在于全局或整个函数块中。

 

-----------------------------------------------------分割线-------------------------------------------
跑去看了看var的定义范围,我为什么要测试这个啊,明明写的很明白。

“let允许你声明一个作用域被限制在块级中的变量、语句或者表达式。

var声明的变量只能是全局或者整个函数块的。”--------------来自MDN的let页面(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/let)

转载于:https://www.cnblogs.com/FreezeNow/p/10383149.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值