在变量作用域方面,函数声明和函数表达式有什么区别?

terry Javascript 328

函数声明:函数声明会在程序执行时就被创建好函数, 在被调用时初始化词法环境。

函数表达式:函数表达式只会在运行到表达式语句时被创建和初始化环境。

总结:函数声明就算在代码最后去编写, 在代码头部也可以被执行,因为在js预处理时会自动把函数声明提升到代码的最顶部.而函数表达式只会在当前语句时被执行.表达式和声明都是函数对象, 只是被创建的时间不同。

  1. 以函数声明的方式定义的函数,函数可以在函数声明之前调用,而函数表达式的函数只能在声明之后调用。
  2. 以函数声明的方式定义的函数仅可出现在全局中,或者嵌套在其他的函数中,但是它们不能出现在循环,条件或者try/catch/finally中,而函数表达式可以在任何地方使用。
  • 暂无回复内容