一、变量作用域
- 啥意思?
变量在什么范围内是可用的或者可访问。
- var
var 没有块级作用域,即if(true){ var name = '_struggler'; console.log(name); } // 此处仍然可以访问 console.log(name)
- 没有块级作用域引起的问题
$1.数据使用前可能被修改,不安全
$2.在ES5中,if/for 使用var是无法体现作用域(通常借助于function作用域)
- 解决
$1. 使用闭包: ?->因为函数是一个作用域
$2.使用let: 解决var作用域的问题(function (){ if(true){ var name = '_struggler'; console.log(name); } }); // 拿不到 console.log(name);