作用域
全局作用域
任何没有在方法中的变量都是在全局作用域中,全局作用域中农的变量可以在程序中的任何地方访问
```
var greeting = 'Hello World!';
function greet() {
console.log(greeting);
}
// 打印'Hello World!'
greet();
```
局部作用域
声明在方法中的变量就是局部作用域,这些变量只能在声明的方法内使用,
```
function greet() {
var greeting = 'Hello World!';
console.log(greeting);
}
// 打印'Hello World!'
greet();
// Uncaught ReferenceError: greeting is not defined
console.log(greeting);
```
作用域链
当一个变量在js中被使用的时候,js引擎会尝试在当前作用域下寻找这个变量,如果没有找到就会继续再上一层寻找直到找到全局作用域。如果还是没有找到就会返回错误。
For example:
```
let foo = 'foo';
function bar() {
let baz = 'baz';
//打印 'baz'
console.log(baz);
// 打印 'foo'
console.log(foo);
number = 42;
console.log(number); // 打印42
}
bar();
```
网友评论