关于块级作用域的问题

{

    var a;

    function a () {}

} // Uncaught SyntaxError: Identifier 'a' has already been declared

ES6 规定,块级作用域之中,函数声明语句的行为类似于let,在块级作用域之外不可引用。


而在es6的浏览器中,为了减轻对老代码的影响,函数的申明类似于var,所以我的理解是


{

    var a = function () {};

    var a;

} // 并不会出现问题

请问,造成上面错误的原因是什么,谢谢!


30秒到达战场
浏览 498回答 1
1回答

繁花如伊

函数申明提升的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript