javascript为什么可以在块级作用域外调用块级作用域中的函数?

{
  let foo = 'lxx'
  function demo() {
    console.log('demo function')
  }
  class Person {}
}

// console.log(foo) // 报错
// var p = new Person() // 报错
demo() // demo function 

非严格模式下 可以调用块作用域中的函数,严格模式下和变量一样,访问不到。这是为什么呢?有老师说是为了兼容ES6之前的代码。

阅读 2.1k
3 个回答

块级作用域是在es6时才有的,所以es6语法才支持。demo你用的是es5语法

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