问一个基础问题,大家怎么理解的js的函数提升,js的if语句没有块级作用域,怎么后面没有提升呢?求教。
ecma262 的函数是块级的,不会提升到块之外。
但是各个浏览器的实现都跟 ecma262 不太一样 ... 各个浏览器之间也不太一样 ... (因为各个浏览器对 block 级函数的支持在 ecma262 之前,标准出来之后为兼容性都没有改成与 ecma262 一致 ...)
所以,尽量避免 block 级函数。
还有,if 后的 {} 就是一个块级作用域啊 ...
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/function