JavaScript 函数高级用法与模式解析
1. 函数声明与函数表达式
在 JavaScript 中,函数声明和函数表达式存在一些差异。推荐使用函数表达式而非函数声明,原因在于函数表达式能突出函数和其他对象一样,并非特殊的语言结构。虽然技术上可以使用命名函数表达式并将其赋值给不同名称的变量,例如:
var foo = function bar() {};
但这种用法在某些浏览器(如 IE)中实现存在问题,所以不建议使用。
2. 函数提升
函数提升是 JavaScript 中一个重要的概念,尽管 ECMAScript 并未明确定义该术语,但它能很好地描述函数的行为。所有变量,无论在函数体的何处声明,都会在幕后被提升到函数顶部,函数也是如此,因为它们本质上就是赋值给变量的对象。不过,使用函数声明时,函数的定义也会被提升,而不仅仅是声明。以下是一个示例:
// 全局函数
function foo() {
alert('global foo');
}
function bar() {
alert('global bar');
}
function hoistMe() {
console.log(typeof foo); // "function"
console.log(typeof bar); // "undefined"
foo(); // "local foo"
bar(); // TypeError: bar i
超级会员免费看
订阅专栏 解锁全文

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



