JS Function 创建函数的三种方式
1. 函数声明( 整个函数声明提前 )[必须有名函数]
function sum(){}
2. 函数表达式( sum 变量声明提前 )
var sum = function(){}
var sum = function a(){}
可选的函数名称
var sub = function () {}
// 函数表达式没有名称,属于匿名函数表达式。
var a = function b () {
console.log(a === b) // true
}
b() // 错误的调用方式 b is not defined
a() // 正确的调用方式
// 函数表达式的名称为 a,这个名称 b 实际上变成了函数内部的一个局部变量,并且指代函数对象本身
不会提前创建
a()
function a(){}
// 函数声明会将整个函数提前创建
a()
var a = function(){}
// a is not a function
// 对于函数表达式,则必须等到解释器执行到它所在的代码行,才会被真正解析执行。
3. 使用 Function 构造函数( sum 变量声明提前 )【很少用到】
var sum = new Function()
匿名函数
使用 function 关键字声明一个函数,但未给函数命名,所以叫匿名函数
function () {}
匿名函数属于函数表达式
函数声明和函数表达式不同
- Javascript 引擎在解析 javascript 代码时会‘函数声明提升’(Function declaration Hoisting)当前执行环境(作用域)上的函数声明,而函数表达式必须等到 Javascirtp 引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式
- 函数表达式可以用括号(或者其他运算符号)立即调用该函数,函数声明不可以,只能以 fnName() 形式调用 。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: es6 编程风格的改变
下一篇: TypeScript 常见问题
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论