English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript基礎トレーニング

JavaScriptオブジェクト

JavaScript関数

JSHTMLDOM

JSブラウザBOM

AJAX基礎トレーニング

JavaScriptリファレンスマニュアル

JavaScriptの変数のスコープ

変数のスコープは、その中で定義されたプログラムの領域です。

JavaScriptの変数にはスコープが2つあります:

  • ローカルスコープ

  • グローバルスコープ

スコープは変数の可視性(アクセス可能さ)を決定します。

JavaScriptローカル変数

関数で宣言された変数はLOCAL(ローカル)スコープ、これは関数外部から呼び出したり操作したりできないことを意味します。

// ここのコードはcityNameを使用できません
function myFunc() {
  var cityName = "New Delhi";
  
  // ここのコードはcityNameを使用できます  
}
// ここのコードはcityNameを使用できません
テストしてみて‹/›

ローカル変数は関数スコープを持っており、関数内からのみアクセスできます。

ローカル変数は関数内でのみ認識されるため、同じ名前の変数が異なる関数で使用できます。

関数が開始されるとローカル変数が作成され、関数が完了するとローカル変数が削除されます。

JavaScriptグローバル変数

関数外部で宣言された変数は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(グローバル)変数。

この例では、グローバル変数を宣言しますcityName、函数内で値が割り当てられていても同様です。

myFunc();
// ここのコードはcityNameを使用できます 
function myFunc() {
  cityName = "New Delhi";
}
テストしてみて‹/›

必要がない場合は、簡単にグローバル変数を作成しないでください。

グローバル変数はウィンドウ変数を覆盖できます。

すべてのファンクション、包括的にwindowオブジェクトも、GLOBAL変数をオーバーライドできます。

var、let、constの違い

JavaScriptには変数を宣言するために3つの異なるキーワードがあります。これにより、言語に複雑さが加わります。

違いは範囲、昇格、再割り当てに基づいています。

キーワード範囲昇格再割り当てできます再宣言できます
varファンクション範囲はいはいはい
letブロック範囲いいえはいいいえ
constブロック範囲いいえいいえいいえ

JavaScript コードのブロック範囲

varキーワードで宣言された変数はブロック範囲を持つことができません。

{}はブロック内部で宣言された変数をブロック外部からアクセスできます:

  { 
  var num = 50; 
  }
  // numはここでは使用できます

letキーワードで宣言された変数は「ブロック範囲」を持つことができます。

{}内で宣言された変数はブロック外部からアクセスできません:

  { 
  let num = 50; 
  }
  // numはここでは使用できません

変数を宣言するwith constletブロック範囲に似ています。

  { 
  const num = 50; 
  }
  // numはここでは使用できません

定数の値は再割り当てできず、再宣言もできません。

JavaScript 変数のライフサイクル

JavaScript 変数のライフサイクルは宣言から始まります。

ファンクションが完了すると、削除されますローカル変数。

ブラウザウィンドウを閉じると、グローバル変数は削除されますが、同じウィンドウに読み込まれた新しいページではまだ使用できます。