Javaスクリプト変数: 例を使用して値を宣言、割り当てる

⚡ スマートサマリー

Javaスクリプト変数には、名前や数値、式の結果などの値が格納されます。`var`、`let`、または`const`を使って変数を宣言すると、スクリプトの残りの部分から読み取りや更新が可能な名前付きスロットが予約されます。

  • 🔘 宣言: キーワード var、let、または const は、コードがその名前を読み書きする前に名前を作成します。
  • ☑️ 割り当て: 単一の等号は、宣言行またはそれ以降の行で、変数に値をコピーします。
  • ネーミング: 名前は文字、ドル記号、またはアンダースコアで始まり、大文字と小文字は別個の文字として扱われます。
  • 🧪 現代のキーワード: const は決して変わらない値に適しており、let は変化する値に適しており、var は主にレガシー スクリプトで使われています。
  • 🛠️ 範囲: let と const は囲んでいる中括弧の中に留まりますが、var は周囲の関数全体に到達します。
  • 📌 一般的な障害: constの再代入、letの早すぎる読み取り、またはキーワードの省略は、それぞれ異なるエラーを引き起こします。

宣言する Javaスクリプト変数とその値への割り当て

変数は値(name = “John”)や式(sum = x + y)を格納するために使用されます。スクリプトが後で保持するすべての値(ユーザー名、累計、はい/いいえフラグなど)は変数に格納されるため、変数を適切に宣言して名前を付けることは、最初に習得すべきスキルです。 Javaスクリプト.

変数を宣言する Javaスクリプト

変数を使用する前に、まず変数を宣言する必要があります。変数を宣言するには、次のようにキーワード var を使用します。

var name;

宣言自体は名前を作成するだけで、それ以上のことは何も行いません。この時点では変数は存在しますが、まだ値が格納されていないため、特別な値であるundefinedを保持しています。

⚠️ バージョンノート: var は元の宣言キーワードであり、すべてのブラウザで今でも動作します。ES6 (2015) で追加されました。 (NAIST) と 定数キーワードは現代的 Javaスクリプトの使用例。どちらもこのページの下部でvarと比較されています。

変数に値を代入する

変数の宣言中または変数の宣言後に、変数に値を割り当てることができます。

var name = "John";

OR

var name;

name = "John";

どちらの形式も同じ結果になります。単一の等号は 代入演算子: 右辺の値を左辺の変数にコピーします。等価性のテストではありません。等価性のテストは == または === と書き、 に属します。 条件付きステートメント.

変数の命名

変数名は自由に決められますが、分かりやすく意味のある名前を付けるのがプログラミングの良い習慣です。また、変数名は必ず文字で始まり、大文字と小文字は区別されます。したがって、変数studentnameとstudentNameは、名前に含まれる文字nが異なるため(nとN)、異なる変数として扱われます。

名前が合法かどうかは、以下の4つのルールによって決まります。

  1. 最初の文字は、英字、ドル記号、またはアンダースコアでなければならず、数字は使用できません。
  2. 最初の文字以降は、文字、数字、ドル記号、アンダースコアがすべて使用可能です。
  3. スペースは使用できないため、2つの単語からなるアイデアは、2つの単語のままではなく、studentNameのように結合されます。
  4. var、let、const、class、returnなどの予約語は、名前として再利用することはできません。

慣例により Javaスクリプト名はキャメルケースを使用するため、最初の単語は小文字で、それ以降の単語はすべて大文字で始まります。例: firstName、totalPrice、isLoggedIn。

以下のスクリプトは、2つの変数を宣言し、それらに5つの算術演算子を適用し、それぞれの結果をページに書き込みます。ぜひご自身で試してみてください。

<html>
<head>
<title>Variables!!!</title>
<script type="text/javascript">
var one = 22;
var two = 3;
var add = one + two;
var minus = one - two;
var multiply = one * two;
var divide = one/two;
	document.write("First No: = " + one + "<br />Second No: = " + two + " <br />");
	document.write(one + " + " + two + " = " + add + "<br/>");
	document.write(one + " - " + two + " = " + minus + "<br/>");
	document.write(one + " * " + two + " = " + multiply + "<br/>");
	document.write(one + " / " + two + " = " + divide + "<br/>");
</script>
</head>
<body>
</body>
</html>

現代における var、let、const の比較 Javaスクリプト

var のみが存在していたのは Javaスクリプトは最初に書かれたもので、初心者を驚かせる2つの特徴があります。それは、暗黙的に再宣言できることと、ブロック境界を無視することです。これらの問題を解決するために、letとconstが追加されました。以下の表は、これら3つのキーワードを並べて示しています。

行動 VAR 定数
対象領域 全体機能 囲いブロック 囲いブロック
再割り当て可能 はい はい いいえ
同じスコープ内で再宣言可能 はい いいえ いいえ
申告欄に必須の値 いいえ いいえ はい
宣言前に読む 未定義を返します 参照エラー 参照エラー

簡単な習慣でほぼすべてのケースに対応できます。 定数 まず、 値が本当に変更される必要がある瞬間、たとえば、 Javaスクリプトループ、そして新しいコードを書くのではなく、古いコードを読み込むために変数を保持します。

可変範囲と吊り上げ Javaスクリプト

スコープは、スクリプトのどの部分から変数を参照できるかを決定します。`var` 宣言は、それを含む関数に属するため、その関数内の `if` ブロックや `for` ブロックからは外れます。`let` または `const` 宣言は、それが配置されている波括弧のペアに属し、その外側では見えなくなります。

function demo() {
  if (true) {
    var wide = "visible throughout demo()";
    let narrow = "visible only inside these braces";
  }
  console.log(wide);
  console.log(narrow);
}

最初の console.log は文字列を出力します。2 番目の console.log は ReferenceError をスローします。これは、if ブロックが終了すると narrow が存在しなくなるためです。

巻き上げ これは物語の後半部分です。 Javaスクリプトは、スコープ内の1行を実行する前に、スコープ内のすべての宣言を登録します。 var name は登録され、undefined に設定されるので、それを早期に読み取ることは合法ですが、役に立ちません。 let または const name は値なしで登録され、ブロックの先頭と宣言行の間のギャップは、 一時的なデッドゾーン.

console.log(a);
var a = 1;

console.log(b);
let b = 2;

最初の行には「undefined」と表示されます。3行目には「初期化前に'b'にアクセスできません」というエラーが表示されます。このエラーこそが、letがvarよりも安全である理由です。なぜなら、letはエラーを隠すのではなく、実際のエラー箇所を指し示すからです。

宣言時のよくあるエラー Javaスクリプト変数

初心者が変数について学習する際に目にするコンソール出力のほとんどは、以下の5つのメッセージで占められています。それぞれのメッセージは具体的な原因を示しているため、修正は通常1行のコードで済みます。

コンソールメッセージ 原因となる 修正する
SyntaxError: 識別子 'x' は既に宣言されています 同じ名前に対して、1つのブロック内でletまたはconstが2回使用されている。 既存の変数を再利用するか、2番目の変数の名前を変更します。
TypeError: 定数変数への代入 定数に新しい値が割り当てられました 値を変更する必要がある場合は、let で宣言してください。
ReferenceError: 初期化前に「x」にアクセスできません 一時的デッドゾーン内でletまたはconstが読み取られました 宣言行の下に読み取りを移動します
ReferenceError: x が定義されていません 名前は申告されなかったか、スペルミスがあった。 それを宣言するか、スペルと大文字小文字を訂正してください
値が期待される場所に「undefined」が表示されます。 変数は宣言されたが、代入されなかった。 最初の読み取りの前に値を割り当てる

ファイルの先頭に「use strict」を追加すると、4番目のケース(宣言されていない名前に代入する)のサイレントバージョンが目に見えるエラーに変わります。そのため、すべての新しいスクリプトに含める必要があります。同じ変数ルールは変更されずに引き継がれます。 アレイ, オブジェクト、サーバーサイドのコードは Node.js.

よくあるご質問

どれでも。 JavaScriptは動的型付けを採用しているため、ある変数には数値、別の変数には文字列、さらに別の変数にはオブジェクトが格納される可能性があります。宣言では名前が予約されるだけで、型は予約されません。変数が現在どのような値を保持しているかを確認するには、typeofを使用してください。

Javaスクリプトは暗黙的にグローバル変数を作成しますが、他のコードが誤ってそれを上書きしてしまう可能性があります。ファイルの先頭に「use strict」を追加すると、同じ行がReferenceErrorに変わり、エラーが静かに広がるのではなく、すぐに表示されます。

undefined は、変数が宣言されたものの、値が代入されていないことを意味します。null は、「何もない」という意味で意図的に代入する値です。どちらも偽値ですが、typeof undefined は「undefined」を返し、typeof null は「object」を返します。

プラス演算子は、どちらかの側が文字列の場合にテキストを結合します。したがって、22 + “3” は “223” になります。算術演算を行う場合は、まず Number() または parseInt() を使用して変換してください。traction にはテキストの意味がないため、「3」-1 は正しく 2 を返します。

はい。const は値ではなくバインディングをロックするため、const オブジェクトのプロパティや const 配列の要素は変更可能です。変数自体を再代入すると TypeError が発生します。内容を固定する必要がある場合は、Object.freeze() を使用してください。

最新のエディタに組み込まれたAIアシスタントは、周囲の文脈からキーワードと分かりやすい名前を提案し、constにすべき変数を指摘し、すべての使用箇所を一度に名前変更します。それぞれの提案を下書きとして扱い、スコープが正しいことを確認してください。

多くの場合、そうです。 副操縦士 近くのコードを読み取り、周囲のスタイルに一致する名前を提案します。これにより、x や temp などのプレースホルダーを置き換えるのに役立ちます。 Revすべての名前をよく見てください。流暢な提案でも、間違ったことを説明している可能性があるからです。

console.log() は、現在の値をブラウザのコンソールに出力します。より詳細を確認するには、DevTools のソースパネルでブレークポイントを設定し、名前にカーソルを合わせるか、ウォッチリストに追加して、その行の値を確認してください。