南昌网站建设机构拱墅抖音seo搜索排名推广
1、let可以形成块级作用域,在es6之前javascript只有函数作用域,没有块级作用域。在es6之前实现块级作用域:
 
 
 2、可以看到通过一个立即执行函数表达式,我们实现了一个局部作用域或者块级作用域,但是有了let之后就不需要写这样的代码了,代码修改如下。
 
 3、执行结果: 可以看到两者实现的效果是一样的。
 
4、下面看一道经典面试题:

 5、执行结果为:每隔200ms依次打印5,一共打印5次。

 6、依次输出0,1,2,3,4
7、let可以生成局部作用域
 
 8、执行结果为: 依次输出0,1,2,3,4
 
 原因就在于for循环每次执行都是一个独立块作用域,而用let声明的变量传到for循环体的作用域后,不会发生变化,不受外界影响
9、const是用来定义常量的,常量定义之后是不允许改变的。看代码:
 
 
 10、错误提示为:Uncaught TypeError: Assignment to constant variable.意思是常量已经赋值了
 
 11、执行结果为: 错误提示为:Uncaught SyntaxError: Missing initializer in const declaration。意思是缺少初识值。
 
