javascript 简单复习

This commit is contained in:
estomm
2022-04-18 20:40:34 +08:00
parent c030d40264
commit bb9110d289
54 changed files with 4123 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
## 作用域链
很多开发语言中都具有块级作用域,但 JavaScript 中并没有跨级作用域,这经常会导致理解上的困惑。如下示例:
```javascript
if( true ){
var color = "blue";
}
console.log( color );// blue
```
上述代码在 if 语句中定义了变量 color。但该变量的作用域是全局域原因是 JavaScript 中没有块级作用域。
虽然 JavaScript 没有块级作用域,但具有函数作用域。在某个函数内部定义的变量的作用域就是该函数作用域。
```javascript
function fun(){
var javascript = "this is javascript";
}
console.log( javascript );// 输出报错
```
上述代码在函数 fun 内部定义了变量 JavaScript该变量的作用域是 fun 函数作用域。所以在全局域访问该变量时会出错。
每一段 JavaScript 代码(全局代码或函数)都有一个与之关联的作用域链。这个作用域链是一个对象列表或链表,这组对象定义了这段代码“作用域中”的变量。如下示例:
```javascript
var a = 1;
// 在全局域中只能访问变量 a
function f(){
// 在 f 函数作用域中可以访问变量 a 和 b
var b = 2;
}
```