## 1— 闭包的理解
闭包就是能够读取函数 内部变量的函数,
在js中,只有函数内部的子函数才能读取到局部变量
所以闭包可以理解成“定义在一个函数内部的函数“。
在本质上,闭包是将函数内部和函数外部连接起来的桥梁。
代码示例1
function init() {
var name = "Wang"; // name 是一个被 init 创建的局部变量
var i ;
function displayName() { // displayName() 是内部函数,一个闭包
i = '9999'
console.log(i); // 使用了父函数中声明的变量
console.log(Boolean(i))
}
displayName(); // 子函数内部调用
}
init();
// 1- 内部子函数可以调用全局环境中的变量, 全局环境无法调用局部作用域的变量
// 2- 声明了但是未赋值,是undefined
// 3- 字符串的时候为true
// 4- 数字0 为false 数字 -1 为true 数组,对象皆为true
// 5- 未声明未赋值 是报错