背景
在javaScript中,定义变量是一个非常常见的操作,在Es5中,通常使用var定义声明变量,而在Es6中新增了let和const关键字,也是用于声明定义变量
那究竟在什么样的情况下使用它们,解决自己开发过程当中定义变量的一些困扰...循环遍历一字符串javaScript,输出打印出每个字符
var str = "javaScript";
for(var i = 0;i<str.length;i++) {
console.log...,但是循环结束后,它并没有消失,释放,而是泄露成了全局变量,这样会造成全局变量的污染
解决办法:
若使用let定义变量,则变量不会被提升置作用域顶部,它只会在它定义的块级作用域内生效
注意事项
使用let...,它会绑定在这个区域内,不会受外部的影响,它会形成自己封闭的作用域,只要在声明之前使用这些定义的变量,就会报错
在代码块内,使用let,const命令声明变量之前,该变量都是不可用的,这称为暂时性死区(...tmp之前,都属于变量的tmp的死区
之所以定义暂时性死区,和不存在变量的提升,主要是为了减少运行时的错误,防止在变量声明之前就使用这个变量,从而导致一些Bug
暂时性死区的本质是: 只要一进入当前作用域