Javaスクリプト変数: 例を使用して値を宣言、割り当てる
⚡ スマートサマリー
Javaスクリプト変数には、名前や数値、式の結果などの値が格納されます。`var`、`let`、または`const`を使って変数を宣言すると、スクリプトの残りの部分から読み取りや更新が可能な名前付きスロットが予約されます。
変数は値(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つのルールによって決まります。
- 最初の文字は、英字、ドル記号、またはアンダースコアでなければならず、数字は使用できません。
- 最初の文字以降は、文字、数字、ドル記号、アンダースコアがすべて使用可能です。
- スペースは使用できないため、2つの単語からなるアイデアは、2つの単語のままではなく、studentNameのように結合されます。
- 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.
