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