mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 18:32:22 +00:00
Update let.md
This commit is contained in:
parent
7bad01cae6
commit
aaf0750fd4
21
docs/let.md
21
docs/let.md
@ -73,18 +73,6 @@ 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`。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。
|
||||||
@ -207,15 +195,6 @@ 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