mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-30 06:37:27 +00:00
Update let.md
This commit is contained in:
parent
bd2840d8ac
commit
9c01ac75a7
21
docs/let.md
21
docs/let.md
@ -73,6 +73,18 @@ for (let i = 0; i < 3; i++) {
|
|||||||
|
|
||||||
上面代码正确运行,输出了 3 次`abc`。这表明函数内部的变量`i`与循环变量`i`不在同一个作用域,有各自单独的作用域。
|
上面代码正确运行,输出了 3 次`abc`。这表明函数内部的变量`i`与循环变量`i`不在同一个作用域,有各自单独的作用域。
|
||||||
|
|
||||||
|
`let`声明变量不能出现在单行语句作用域中,在单行语句中使用`let`将会报错。
|
||||||
|
|
||||||
|
```
|
||||||
|
// 报错
|
||||||
|
if (true)
|
||||||
|
let a = 0;
|
||||||
|
|
||||||
|
// 报错
|
||||||
|
for (let i = 0; i < 3; i++)
|
||||||
|
let a = 0;
|
||||||
|
```
|
||||||
|
|
||||||
### 不存在变量提升
|
### 不存在变量提升
|
||||||
|
|
||||||
`var`命令会发生“变量提升”现象,即变量可以在声明之前使用,值为`undefined`。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。
|
`var`命令会发生“变量提升”现象,即变量可以在声明之前使用,值为`undefined`。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。
|
||||||
@ -195,6 +207,15 @@ function func() {
|
|||||||
let a = 10;
|
let a = 10;
|
||||||
let a = 1;
|
let a = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// for循环内外有三个不同的作用域,不报错
|
||||||
|
function func() {
|
||||||
|
let arr = [1,2,3];
|
||||||
|
let i = 4;
|
||||||
|
for(let i in arr){
|
||||||
|
let i = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
因此,不能在函数内部重新声明参数。
|
因此,不能在函数内部重新声明参数。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user