2017-07-05 87 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