1. 在以往的js中只存在函数作用域而不存在块级作用域。var声明的在整个fn中都有效
2. 使用let 将会存在暂时性死区 =》解释:使用let 声明的变量,在其声明前不可使用
fn(){
console.log(name); //直接报错 这叫暂时性死区
let name = 'lisi';
}
fn(){
console.log(age); //undefind 不会报错 只是表示该参数未声明而已
var age = 22;
}
多说一句:
const定义的变量不可以修改,而且必须初始化。
const b = 2;//正确
const b;//错误,必须初始化
---------------------------------------------
console.log('函数外const定义b:' + b);//有输出值
---------------------------------------------
b = 5;
console.log('函数外修改const定义b:' + b);//无法输出