mirror of
https://github.com/Estom/notes.git
synced 2026-04-03 19:07:41 +08:00
javascript 简单复习
This commit is contained in:
54
JavaScript/ecmascript-5/scope.md
Normal file
54
JavaScript/ecmascript-5/scope.md
Normal file
@@ -0,0 +1,54 @@
|
||||
变量和函数都具有作用域。作用域就是变量和函数的可被访问的范围,控制着变量和函数的可见性和生命周期。
|
||||
|
||||
变量的作用域可被分为全局作用域和函数作用域(局部作用域)。如果变量是被定义在全局作用域的话,在 JavaScript 代码中的任何位置都可以访问该变量;如果变量是被定义在指定函数内部的话,在 JavaScript 代码中只能在该函数内访问该变量。
|
||||
|
||||
函数的作用域也可被分为全局作用域和函数作用域(局部作用域)。被定义在指定函数内部的函数被称之为局部函数或内部函数。
|
||||
|
||||
> **值得注意的是:** ECMAScript 6 之前的 JavaScript 没有语句块作用域。
|
||||
|
||||
## 变量的作用域
|
||||
|
||||
### 全局变量
|
||||
|
||||
在所有函数之外声明的变量,叫做全局变量,因为它可被当前文档中的其他代码所访问。具体内容如下述代码所示:
|
||||
|
||||
```javascript
|
||||
var msg = "this is message";// 定义全局变量 msg
|
||||
|
||||
// 在全局作用域访问变量 msg
|
||||
console.log( msg );// 输出 this is message
|
||||
|
||||
function fn(){
|
||||
// 在函数作用域访问变量 msg
|
||||
console.log( msg );// 输出 this is message
|
||||
}
|
||||
fn();
|
||||
```
|
||||
|
||||
除了上述定义全局变量外,还有一种比较特殊的方式定义全局变量(具体用法如下述代码)。但这种特殊用法并不推荐!
|
||||
|
||||
```javascript
|
||||
function fun(){
|
||||
// 定义变量时没有使用关键字 var
|
||||
msg = "this is message";
|
||||
// 在函数作用域访问变量 msg
|
||||
console.log( msg );// 输出 this is message
|
||||
}
|
||||
fun();
|
||||
|
||||
// 在全局作用域访问变量 msg
|
||||
console.log( msg );// 输出 this is message
|
||||
```
|
||||
|
||||
### 局部变量
|
||||
|
||||
在函数内部声明的变量,叫做局部变量,因为它只能在该函数内部访问。具体用法如下述代码所示:
|
||||
|
||||
```javascript
|
||||
function fun(){
|
||||
// 定义局部变量 msg
|
||||
var msg = "this is message";
|
||||
// 在函数作用域访问变量 msg
|
||||
console.log( msg );// 输出 this is message
|
||||
}
|
||||
fun();
|
||||
Reference in New Issue
Block a user