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语法

推荐问题
宣传栏