8、变量提升的处理机制(3)

1、当前阶段浏览器对JS变量提升的处理:

向前兼容ES3/ES5规范:
(1)判断体和函数体等不存在块级上下文,上下文只有 全局和私有。
(2)无论条件是否成立,带function的都要声明+定义。

向后兼容ES6规范:
(1)存在块级作用域,大括号中出现let/const/function......都会被认为是块级作用域。
(2)无论条件是否成立,带function的只提前声明,不会提前赋值了。

8、变量提升的处理机制(3)_第1张图片
浏览器兼容.png

你可能感兴趣的:(8、变量提升的处理机制(3))