我是javascript的新手,因为我现在开始学习js,我对var
非常困惑,据说这是功能范围和块范围;
如果是,那么我们如何在该功能之外访问它们?让我说我想从另一个类使用它(我不知道可能通过创建一些对象或其他)(我想我们不能在这里创建对象!因为它是一个基于函数编程的语言我想!:()
var y = "global";
if (y === "global") {
var y = "block-scoped";
console.log(y); // expected output: block-scoped
}
console.log(y); // expected output: block-scoped
var
据说不是功能范围。
使用var
声明的变量可以是函数或全局范围。
如果使用let
或const
声明变量,则它具有块级范围。 A block由{}
划分,或者如果这些符号不存在,则为封闭函数,或者如果不是块或函数,则为Global。
I've written another post更详细地讨论了范围和范围链,应该有助于回答您的编码方案。