Javascript 函数表达式?
资料来源:Javascript 函数表达式?,javascript,Javascript,资料来源: “与函数声明不同,JavaScript中的函数表达式不会被提升。在声明函数表达式之前,不能使用它们。” 示例: var hey = function(){ console.log("hi"); } Chrome的控制台:window.hey返回 function (){ console.log("hi"); } 它说的是你不能写: hey(); var hey = function() { console.log("hi"); } 因为在将函数表达式赋给变量之前
“与函数声明不同,JavaScript中的函数表达式不会被提升。在声明函数表达式之前,不能使用它们。”
示例:
var hey = function(){
console.log("hi");
}
Chrome的控制台:window.hey返回
function (){
console.log("hi");
}
它说的是你不能写:
hey();
var hey = function() {
console.log("hi");
}
因为在将函数表达式赋给变量之前,您正在使用变量hey
。但你可以写:
因为函数声明被提升到包含函数的开头
有关更多信息,请参见以@Barmar的答案为基础,当您这样做时:
hey();
var hey = function() {
console.log("hi");
}
从技术上讲,变量声明仍然挂起,但赋值仍保留在写入的位置,因此它相当于:
var hey;
hey(); // hey is declared as a variable, but is still undefined.
hey = function() {
console.log("hi");
}
这里有问题吗?我没有看到任何问题,请说明你想知道什么。问题是什么?您正在使用
窗口。嘿
声明函数后,您引用的文档不适用。我猜他不清楚“提升”这个词<代码>函数x()甚至可以在声明之前调用,而var x=function()
在定义之前是不可用的。是的..我在脑子里搞砸了。现在明白了。
var hey;
hey(); // hey is declared as a variable, but is still undefined.
hey = function() {
console.log("hi");
}