es6中的函数作用域变量(var)和块作用域变量是什么?

问题描述 投票:1回答:1

我是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
javascript function react-native block var
1个回答
3
投票

var据说不是功能范围。

使用var声明的变量可以是函数或全局范围。

  • 如果声明发生在函数内,则变量的范围限定为该函数。
  • 如果声明发生在函数之外,则变量的作用域是全局的。

如果使用letconst声明变量,则它具有块级范围。 A block{}划分,或者如果这些符号不存在,则为封闭函数,或者如果不是块或函数,则为Global。

I've written another post更详细地讨论了范围和范围链,应该有助于回答您的编码方案。

© www.soinside.com 2019 - 2024. All rights reserved.