1、当前阶段浏览器对JS变量提升的处理:
向前兼容ES3/ES5规范:
(1)判断体和函数体等不存在块级上下文,上下文只有 全局和私有。
(2)无论条件是否成立,带function的都要声明+定义。
向后兼容ES6规范:
(1)存在块级作用域,大括号中出现let/const/function......都会被认为是块级作用域。
(2)无论条件是否成立,带function的只提前声明,不会提前赋值了。
向前兼容ES3/ES5规范:
(1)判断体和函数体等不存在块级上下文,上下文只有 全局和私有。
(2)无论条件是否成立,带function的都要声明+定义。
向后兼容ES6规范:
(1)存在块级作用域,大括号中出现let/const/function......都会被认为是块级作用域。
(2)无论条件是否成立,带function的只提前声明,不会提前赋值了。