let关键字

众所周知,JavaScript有一个非常坑的设定,就是没有块级作用域。这里坑的意思和很多大家熟悉的类C语言设定不一样。

 

#include<stdio.h>
int main(){
  for(int i=0; i<10; i++){
  printf("%d\n",i);
  }

  printf("%d\n",i);
  return 0;
}

在C中这样写你会发现你连编译都过不去。因为C语言中封闭的花括号创造了一个作用域。就像这个花括号整了个盒子把 i 装起来不让外面的人用。外面的 printf 要读取 i 的值自然是找不到变量 i 的。

但在JavaScript中就不一样了。

for(var i = 0; i<10; i++){

}

console.log(i);

完全没得问题,执行的非常流畅。说明花括号没造个盒子把 i 给藏起来。

有时候,我们还是希望花括号去造个盒子把 i 给装起来的,这个时候 let 关键字就起作用了。

见证奇迹的时刻到了:

报错了!!!

 

这样没有块级作用域的问题就解决了。

 

posted @ 2018-02-20 21:11  reikochyou  阅读(159)  评论(0编辑  收藏  举报