当变量声明在外部时
当变量声明在外部时
对比发现,作用域不同导致的
函数在执行时,会先在自己的函数体里查询变量,如果没有,才会一级一级往上查找。函数show()在执行时,输出第一个变量a是undefined是因为它现在自己的执行环境里查询到变量a已声明,即变量提升(即变量可以提前声明但是赋值是不可以的),此时就输出了undefined。
当变量声明在外部时
当变量声明在外部时
对比发现,作用域不同导致的
函数在执行时,会先在自己的函数体里查询变量,如果没有,才会一级一级往上查找。函数show()在执行时,输出第一个变量a是undefined是因为它现在自己的执行环境里查询到变量a已声明,即变量提升(即变量可以提前声明但是赋值是不可以的),此时就输出了undefined。