js中的块级作用域

申明:本文是js系列笔记之一,有不正确的地方请尽管指出,大家相互学习,共同进步;
1.提出问题:
在js的if中定义变量,在if块执行完后,该变量会不会被释放?试一下
js中的块级作用域
文章图片
这是在全局作用域中这样做的
接下来在一个方法中的if语句块中定义变量,试试在全局中访问它;
js中的块级作用域
文章图片
function中可以访问到if块中定义的变量
从这两个现象中发现,js语言在if块,for语句等这些块中定义的变量,可以在它的父级作用域中访问,及js语言是没有块级作用域的。
but,如果我们使用let关键字在if语句块中申明变量呢?
js中的块级作用域
文章图片
变量a用完就被释放了
【js中的块级作用域】所以在这里我们看到了,let使js变得有块级作用域了,所以今后编码在块级作用域中,尤其是for语句,就可以使用let定义局部变量了;

    推荐阅读