JavaScript踩坑笔记05---全局变量、局部变量、自由变量、静态变量、静态方法
全局变量、局部变量:
JavaScript解释器在执行任何代码之前会先创建一个全局对象(global object),全局变量就是相当于这个全局对象的一个属性。
JavaScript中的全局对象为window,在它下面定义的变量为全局变量,一般定义在最外层的作用域中。
除开全局变量,那就是局部变量了。
全局变量定义在全局作用域,局部变量定义在局部作用域。
也就是说,除了定义在全局作用域的变量,剩下的变量,全是局部变量,只是它们定义在不同的局部。
举例说明。
// 定义在最外层的作用域,全局变量
var num = 11;
function fn(aaa) {
// 定义在函数内,局部变量
var str = "JavaScript";
// 参数aaa的作用域在函数内,所以也是局部变量
console.log(aaa);
}
自由变量:
自由变量是相对而言的。
子作用域内可以取到父作用域内的变量,这个变量相对子作用域而言,就是自由变量。
举例说明。
// 定义在最外层的作用域,全局变量
var num = 11;