mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-28 21:32:20 +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`不在同一个作用域,有各自单独的作用域。
|
||||
|
||||
`let`声明变量不能出现在单行语句作用域中,在单行语句中使用`let`将会报错。
|
||||
|
||||
```
|
||||
// 报错
|
||||
if (true)
|
||||
let a = 0;
|
||||
|
||||
// 报错
|
||||
for (let i = 0; i < 3; i++)
|
||||
let a = 0;
|
||||
```
|
||||
|
||||
### 不存在变量提升
|
||||
|
||||
`var`命令会发生“变量提升”现象,即变量可以在声明之前使用,值为`undefined`。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。
|
||||
@ -195,6 +207,15 @@ function func() {
|
||||
let a = 10;
|
||||
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