今天写代码时遇到一个问题
var 没有块级作用域!
var 没有块级作用域!
var 没有块级作用域!
1 | for (var i = 0; i < 3; i++) { |
本来我想让
a=’1’ 时执行case ‘1’
a=’2’ 时执行case ‘2’
结果偏偏不执行case ‘2’
当然,业务比这复杂得多
经过调试:
- 第一次循环i=0
- 然后进入case ‘1’
- i=4
- 结束外层循环
- 所以控制台打印4之后就结束了
实际上是个var没有块级作用域问题,
用let就可以解决,
但这种问题真正在实际复杂应用中就很难发现了,
JS基础真的是很重要,
以后能用let尽量不用var真的时太坑了