English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
变量的作用域是程序在其中定义的区域。
JavaScript变量只有两个作用域:
局部作用域
全局作用域
作用域确定变量的可访问性(可见性)。
在函数中声明的变量具有LOCAL(局部)作用域,这意味着无法从该函数外部调用或操作它们。
// 这里的代码不能使用cityName function myFunc() { var cityName = "New Delhi"; // 这里的代码可以使用cityName } // 这里的代码不能使用cityName测试看看‹/›
局部变量具有函数作用域,只能从函数内部访问它们。
由于局部变量只能在其函数内部识别,因此具有相同名称的变量可以在不同的函数中使用。
函数启动时创建局部变量,函数完成时将局部变量删除。
在函数外部的程序中声明的变量具有GLOBAL范围,这意味着所有脚本都可以使用它们,无论该脚本在函数内部还是外部。
// 初始化全局变量 var cityName = "New Delhi"; // 这里的代码能使用cityName function myFunc() { // 这里的代码同样也能使用cityName } // 这里的代码能使用cityName测试看看‹/›
可以从JavaScript程序中的任何位置访问全局变量。
在下面的示例中,我们将创建一个GLOBAL cityName变量。函数内部是一个具有相同名称的LOCAL变量。
// 初始化全局变量 var cityName = "New Delhi"; function myFunc() { //初始化局部、函数范围内的变量 var cityName = "Jaipur"; document.writeln(cityName); } //输出全局变量和局部变量 document.writeln(cityName); myFunc(); document.writeln(cityName);测试看看‹/›
通过将它们输出到文档,我们可以看到变量的值根据作用域而有所不同,并且原始值没有更改。
如果为尚未声明的变量赋值,它将自动成为GLOBAL(全局)Variablen.
此示例将声明全局变量cityName,即使在函数内部分配了值也是如此。
myFunc(); // 这里的代码能使用cityName function myFunc() { cityName = "New Delhi"; }测试看看‹/›
除非有必要,否则不要轻易创建全局变量。
全局变量可以覆盖窗口变量。
Jegliche Funktion, einschließlich des window-Objekts, kann globale Variablen überschreiben.
JavaScript hat drei verschiedene Schlüsselwörter, um Variablen zu deklarieren, was der Sprache eine zusätzliche Komplexität hinzufügt.
Die Unterschiede zwischen ihnen basieren auf dem Bereich, dem Höhepunkt und der Neuzuweisung.
Schlüsselwort | Bereich | Höhepunkt | Kann neu zugewiesen werden | Kann neu deklariert werden |
---|---|---|---|---|
var | Funktionsspektrum | Ja | Ja | Ja |
let | Blockbereich | Nein | Ja | Nein |
const | Blockbereich | Nein | Nein | Nein |
mitvarVariablen, die mit Schlüsselwörtern deklariert werden, können nicht "Blockbereich" haben.
{} können von außen des Blocks auf Variablen zugegriffen werden, die im Block deklariert wurden:
{ var num = 50; } // num kann hier verwendet werden
mitletVariablen, die mit Schlüsselwörtern deklariert werden, können "Blockbereich" haben.
{} können nicht von außen des Blocks auf Variablen zugegriffen werden, die im Block deklariert wurden:
{ let num = 50; } // num kann hier nicht verwendet werden
Deklaration der Variablen mit constmitletBetreffend Blockbereich ähnlich.
{ const num = 50; } // num kann hier nicht verwendet werden
Der Wert der Konstanten kann nicht durch Neuzuweisung geändert werden und kann nicht neu deklariert werden.
Der Lebenszyklus der JavaScript-Variablen beginnt mit der Deklaration.
Wird gelöscht, wenn die Funktion abgeschlossen istLokalVariablen.
Wenn Sie das Browserfenster schließenGlobalDie Variablen werden gelöscht, aber für neue Seiten, die in das gleiche Fenster geladen werden, sind sie immer noch verfügbar.