var a=5; function mm(){ a=a+6; console.log(a); let a=8; } mm(); 原因:只要块级作用域内存在let命令,它所声明的变量就绑定在这个区域,不再受外部的影响。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的,这在语法上成为暂时性死区。