js函数声明提升细节

问一个基础问题,大家怎么理解的js的函数提升,js的if语句没有块级作用域,怎么后面没有提升呢?求教。
1589271375.jpg

阅读 2k
3 个回答

ecma262 的函数是块级的,不会提升到块之外。

但是各个浏览器的实现都跟 ecma262 不太一样 ... 各个浏览器之间也不太一样 ... (因为各个浏览器对 block 级函数的支持在 ecma262 之前,标准出来之后为兼容性都没有改成与 ecma262 一致 ...)

所以,尽量避免 block 级函数。

还有,if 后的 {} 就是一个块级作用域啊 ...

JS 是有函数作用域和块级作用域的呀

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题