while循环是不是和for循环一样没有块级作用域
如果我在while循环里面定义了一个人变量,下一轮循环 我想继续在之前定义的变量中操作 之前变量会不会清零
while循环是不是和for循环一样没有块级作用域
如果我在while循环里面定义了一个人变量,下一轮循环 我想继续在之前定义的变量中操作 之前变量会不会清零
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
1、我们可以认为有 {} 的表达式都是块级作用域,条件是配合let const 使用,使用var定义的变量不存在块级作用域之说。
2、来看一下对比:
while中使用var声明变量:
我们发现每一次循环,a的值都是上一次赋值之后的值。
我们再来看下let声明:
我们发现使用let声明,第一次打印的值都是undefined,说明每次循环中b的值都是一个新值(块级作用域生效),而且循环外面打印b的值时报错,说明变量b在{}外面不可使用,再次说明块级作用域生效。
如果还有疑问,欢迎留言。