JavaScript易错知识点整理
1.变量作用域
上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2。
上方的函数作用域中虽然声明并赋值了a,但位于console之下,a变量被提升,输出时已声明但尚未被赋值,所以输出undefined。
上方的函数作用域中a被重新赋值,未被重新声明,且位于console之下,所以输出全局作用域中的a。
上方函数作用域中使用了ES6的let重新声明了变量b,而let不同于var其不存在变量提升的功能,所以输出报错b is not defined。
更多内容请见原文,文章转载自:https://blog.csdn.net/weixin_44519496/article/details/118567701