JavaScript 高级特性深度解析
1. 函数声明与函数表达式
在 JavaScript 中,函数声明和函数表达式是定义函数的两种方式,它们之间存在一些关键区别。
函数表达式的定义方式如下:
var myFunc = function() {
// 函数体
};
myFunc();
需要注意的是,函数表达式是一个语句,语句结尾需要使用分号。这里定义的函数没有名称,其 name 属性为空字符串,因此不能通过名称调用,但可以通过赋值的变量来执行。
函数声明和函数表达式的另一个重要区别在于提升(hoisting)。函数声明会被提升,而函数表达式不会。例如:
funcDecl();
funcExpr();
function funcDecl() {
alert('function declaration');
}
var funcExpr = function() {
alert('function expression');
};
在这个例子中, funcDecl() 调用成功,因为函数声明被提升到了代码顶部;而 funcExpr() 调用会报错,因为函数表达式不会被提升。
函数表达式不仅可以赋值给变量,还可以赋值给对象的属性,示例如下:
超级会员免费看
订阅专栏 解锁全文
1184

被折叠的 条评论
为什么被折叠?



