【问题标题】:what is function scoped variables (var) and block scoped variables in es6?什么是 es6 中的函数作用域变量(var)和块作用域变量?
【发布时间】:2019-03-31 18:31:38
【问题描述】:

我是 javascipt 的新手,因为我现在开始学习 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】:

var 不是函数作用域。

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

  • 如果声明出现在函数中,则变量为 仅限于该功能。
  • 如果声明发生在函数之外,则变量为 全球范围。

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

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

【讨论】:

    猜你喜欢
    • 2012-10-05
    • 2021-09-06
    相关资源
    最近更新 更多