我正在阅读函数声明和函数表达式。它说函数声明放在JavaScript的初始化阶段中。后来我发现变量也放在那里,但是它们得到undefined的值,当解释器到达变量时,它将被分配。
我找不到一篇关于它的好文章。 现在我想知道在JavaScript的初始化阶段还有什么其他内容?
答案 0 :(得分:0)
尝试搜索javascript 悬挂(W3Schools)。
它基本上意味着,无论您在何处声明函数或变量,在运行代码时,函数和变量都会被提升到顶部并声明。这就是为什么你可以在使用它们之后声明它们并且它们仍能正常运行的原因。
然而,初始化它们是不同的。来自W3Schools
JavaScript只提升声明,而不是初始化。
这意味着变量只有在到达相关行时才会获得指定值;功能是一样的。
如果使用函数表达式,例如:
var foo = function() {
// your code
}
在这种情况下,只有变量名称将被提升并赋值为undefined
,然后如果函数被称为 ,则函数表达式将错误,因为代码中此时尚未分配函数。