gpt4 book ai didi

javascript可以在调用者之后定义被调用者,它是如何解析的?

转载 作者:行者123 更新时间:2023-12-04 02:06:48 24 4
gpt4 key购买 nike

我想知道 javascript 是怎么做到的?函数可以在调用者调用函数后定义。

有文档详细解释它是如何工作的吗?

谢谢

最佳答案

那是因为函数声明提升。所有函数声明都被提升到包含范围的顶部。函数声明如下所示:

function functionName(arg1, arg2){
..code here
}

这就是您可以在代码中实际声明之前调用该函数的原因。

但请注意,函数表达式不会提升。所以以下未被提升:

var functionName = function(arg1, arg2){
..code here
};

所以下面会抛出错误:

functionName(); //TypeError, undefined is not a function!
var functionName = function(arg1, arg2) {
console.log(arg1);
};

已添加::考虑一个函数表达式的例子::

saySomething(); //You get error here
var saySomething = function() {
console.log("Hi there!");
};

这不会工作并抛出错误,因为,变量声明和函数声明被提升了,但是在上面的函数表达式示例中,它的变量声明和赋值。变量声明被提升,但赋值保留在原处。所以结果会是这样的:

var saySomething;
saySomething(); //you get error here, which should be clear now as why you get the error
saySomething = function() {
console.log("Hi there!");
};

关于javascript可以在调用者之后定义被调用者,它是如何解析的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18456576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com