2017-07-05 89 views
0

什么是在javascript中的文件范围内声明的变量?
考虑到应用中使用多个文件,是否有任何文件范围。什么是javascript中的文件范围

+1

你的意思是全球范围?模块范围?我从来没有听说过'文件范围'。 – Li357

+1

这取决于你是否使用模块。 – SLaks

+1

没有“文件范围”。有全局,功能,评估或(最近)块。 – RobG

回答

1

ES6模块形成其自己的文件范围(如如果内限定该文件的全部内容都包装在一个函数中)。

模块中声明的变量在该模块之外完全不可访问(除非它们是export ed)。

1

在JavaScript中,仅存在3种类型的范围:

  1. 全局范围(即,在一个或多个文件的每一个变量/功能定义外功能)
  2. 功能范围(即每个变量/功能功能)
  3. 封闭范围(即代码块/功能具有进入其周围词法作用域)
+1

由于您的“封闭范围”是功能和块的组合,并且您具有#2的功能,#3应该是“块”。闭包由可访问外部范围的范围构成,因此是ECMAScript [*词法环境*](https://tc39.github.io/ecma262/#sec-lexical-environments)的人工制品,而不是“范围”属于自己的。 ;-) – RobG