es6中的函数范围变量(var)和块范围变量是什么?

时间:2019-03-31 18:31:38

标签: javascript function react-native block var

我现在开始学习js时,对javascipt还是陌生的,我对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 是函数范围的和块范围的;

如果是这样,那么我们如何在该功能之外访问它们!可以说我想在另一个类中使用它(我不知道可能是通过创建一些对象或其他任何东西)(我想我们不能在这里创建对象!因为我猜它是一种基于功能编程的语言,所以我想!:()

transition:opacity 1s;

1 个答案:

答案 0 :(得分:3)

var未被认为是函数范围的。

string dataRecordKey = dataRecord.MetaDataRecordId.ToString() + "|" + dataRecord.Profile + "|" + dataRecord.Group + "|" + dataRecord.FirstName + "|" + dataRecord.FamilyName+ "|" + dataRecord.City; int dataRecordId = -1; if (dictDataRecord.ContainsKey(dataRecordKey)) { dataRecordId = dictDataRecord[dataRecordKey]; } else { dataRecordId = await dataRecordRepository.CreateDataRecordAsync(dataRecord); dictDataRecord.Add(dataRecordKey, dataRecordId); } 声明的变量可以是函数或全局范围的。

  • 如果声明发生在函数内,则变量为 限于该功能。
  • 如果声明发生在函数外部,则变量为 全球范围内。

如果变量是用letconst声明的,则它具有块级作用域。 A blockvar分隔,或者,如果不存在这些符号,则用封闭函数,或者,如果不在块或函数中,则用Global分隔。

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