gpt4 book ai didi

函数声明的javascript范围

转载 作者:行者123 更新时间:2023-12-03 13:21:01 24 4
gpt4 key购买 nike

var javascript中的关键字导致变量存储在本地范围内。没有 var变量属于全局范围。函数呢?很清楚当函数被声明为变量时会发生什么

var foo = function() {...}

但是作用域是什么
function foo() {...} 

属于?

编辑:
我意识到我没有问完全正确的问题,所以作为跟进。在最外层的嵌套中,上面的两个声明和下面的声明有区别吗?
foo = function() {...}

最佳答案

它始终属于当前范围。例如:

// global scope

// foo is a global function
function foo() {

// bar is local to foo
function bar() {

}

}
关于你的第二个问题,这个:
foo = function() {...}
是分配给全局变量的匿名函数表达式(除非您运行的是严格模式,否则 foo 将是未定义的)。那和 function foo() {} 的区别是后者是一个函数声明(相对于变量声明,它被分配了一个匿名函数表达式)。
您可能会对这篇关于函数声明和函数表达式的优秀文章感兴趣: Named function expressions demystified .

关于函数声明的javascript范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665160/

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