目录
3、函数作用域 (scopes) 和函数作用域链
示例 1
- 3、函数作用域 (scopes) 和函数作用域链
-
- 示例 1
- 示例 2
- 示例 3
- 示例 4
var a = 10; function funScopes() { // 这里获取的是函数里面的 a console.log(a); // undefined // 这里存在变量提升 var a = 20; }; funScopes(); // 这里获取的是全局的 a console.log(a); // 10示例 2
var a = 10; function funScopes() { // 获取的是全局 a console.log(a); // 10 // 给全局 a 重新赋值 a = 20; }; funScopes(); // 获取的是改变值之后的全局 a console.log(a); // 20示例 3
var a = 10; function funScopes(a) { // 形参变量会自动在函数中 var a; // 获取的是传进来的值 console.log(a); // 10 // 给当前函数中的 a 重新赋值 a = 20; }; funScopes(a); // 获取的是全局中的 a console.log(a); // 10示例 4
var a = 10; function funScopes() { // 函数作用域一开始就已经定义好, // 跟函数在哪里调用无关。 // 所以这里的 a 是全局的 console.log(a); // 10 }; (function() { var a = 100; funScopes(); })();