js中while循环有块级作用域

while循环是不是和for循环一样没有块级作用域

如果我在while循环里面定义了一个人变量,下一轮循环 我想继续在之前定义的变量中操作 之前变量会不会清零

阅读 3k
1 个回答

1、我们可以认为有 {} 的表达式都是块级作用域,条件是配合let const 使用,使用var定义的变量不存在块级作用域之说。
2、来看一下对比:
while中使用var声明变量

clipboard.png

我们发现每一次循环,a的值都是上一次赋值之后的值。


我们再来看下let声明

clipboard.png

我们发现使用let声明,第一次打印的值都是undefined,说明每次循环中b的值都是一个新值(块级作用域生效),而且循环外面打印b的值时报错,说明变量b在{}外面不可使用,再次说明块级作用域生效

如果还有疑问,欢迎留言。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题