1
0
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:
bigbird231 2019-05-08 12:48:31 +08:00 committed by GitHub
parent 7bad01cae6
commit aaf0750fd4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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;
}
}
```
因此,不能在函数内部重新声明参数。