js基础-作用域和作用域链以及闭包
作用域概念: 作用域是可访问变量的集合。 在 JavaScript 中, 对象和函数同样也是变量。 在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。 JavaScript 函数作用域: 作用域在函数内修改。 作用域分类: 全局作用域 和 局部作用域 局部作用域: 变量在函数内声明,只能在函数内部访问,即局部变量 函数参数也是局部变量 因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。 全局作用域: 变量在函数外定义,即为全局变量 全局变量有 全局作用域: 网页中所有脚本和函数均可使用。 如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。 在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。 1 var a = 100;//全局 2 function fn(){ 3 var a =200; 4 console.log('函数作用域',a); 5 } 6 console.log('全局作用域',a); //全局作用域 100 7 fn();//函数作用域 200 JavaScript 变量生命周期: JavaScript 变量生命周期在它声明时初始化。 局部变量在函数执行完毕后销毁。 全局变量在页面关闭后销毁。 js中无块级作用域 1 if(true){ 2 var