プログラミングにおける変数を理解する
変数とは何ですか?
変数は、コンピューター プログラム内で参照および操作できる情報を格納するために使用されるため、プログラミングにおいて不可欠な要素です。これらは、データにわかりやすい名前を付ける方法を提供し、プログラムを読者と私たちにとってより理解しやすくします。変数は、情報を保持するコンテナーと考えてください。その唯一の目的は、データにラベルを付けてメモリに保存し、プログラム全体で使用できるようにすることです。
変数への値の割り当て
変数に名前を付けるのは難しい場合があります。明確で簡潔な変数名を考えるのは難しい場合があります。ただし、変数に名前を付けるときは、説明と理解しやすさを優先することが重要です。将来的には、あなた自身を含む他の人がコードを読んで理解する必要があることに注意してください。変数の目的を正確に反映した名前を使用すると、コードが読みやすく、保守しやすくなります。プログラミングでは、「=」記号を使用して変数に値を割り当てます。左側に変数名、右側に値を指定します。
例えば:
let firstName = 'Joe';
console.log(firstName);
// Output: Joe
ここでは、文字列「Joe」が変数「firstName」に割り当てられています。
注意: 代入演算子 =
と等価演算子 ==
を混同しないでください。 「=」演算子は値を割り当てますが、「==」は 2 つの値が等しいかどうかをチェックします。
ユーザーからデータを取得する
ユーザーとの対話を可能にするために、ユーザー入力をキャプチャするメソッドを使用できます。 JavaScript では、これは prompt
パッケージを使用して実行できます。
例えば:
const prompt = require('prompt');
prompt.start();
let { name } = await prompt.get(["name"]);
console.log(name);
// Input: Bob
// Output: Bob
prompt
関数はユーザーからの入力を取得し、それを name
変数に保存します。
変数のスコープ
変数のスコープによって、プログラム内のどこで変数にアクセスできるかが決まります。スコープは変数が初期化される場所によって定義されます。
関数内の変数スコープ
関数では、関数内で初期化された変数はその関数内でのみアクセスできます。
例えば:
let name = 'Somebody Else';
function printFullName(firstName, lastName) {
let name = firstName + ' ' + lastName;
console.log(name);
}
printFullName('Peter', 'Henry'); // prints Peter Henry
printFullName('Lynn', 'Blake'); // prints Lynn Blake
console.log(name); // prints Somebody Else
ここで、printFullName
関数内の name
変数は、関数外部の name
変数とは別のものです。
変数のスコープとブロック
ブロックは、「if」、「for」、「while」などの制御ステートメントに続くコードの一部であり、中括弧「{}」で区切られます。
例えば:
let total = 0;
\[1, 2, 3].forEach(function(number) {
total += number;
});
console.log(total); // Output: 6
total = 0;
for (let i = 0; i < 3; i++) {
total += (i + 1);
}
console.log(total); // Output: 6
どちらの場合も、ブロックはブロックの外で定義された「total」変数にアクセスして変更できます。ただし、ブロック内で初期化された変数 (「i」や「number」など) にはブロックの外からアクセスできません。
変数のタイプ
JavaScript には、「var」、「let」、「const」の 3 種類の変数があります。
- var: 変数を宣言し、オプションで変数を値に初期化します。 var
には関数スコープがあり、それが宣言されている関数全体で利用できることを意味します。
var varVariable = 'I am a var variable';
- let: ブロック スコープのローカル変数を宣言し、オプションで値に初期化します。ブロックスコープの点で、let
は var
よりも推奨されます。
let letVariable = 'I am a let variable';
- const: ブロックスコープの読み取り専用の名前付き定数を宣言します。 const
変数の値は、再代入によって変更することはできません。
const constVariable = 'I am a const variable';
変数のスコープの例
let a = 5; // variable is initialized in the outer scope
for (let i = 0; i < 3; i++) {
// block scope with a for loop
a = 3; // a is accessible here, in an inner scope
let b = 5; // b is initialized in the inner scope
}
console.log(a); // Output: 3
console.log(b); // ReferenceError: b is not defined
この例では、変数 'a' はブロックの内側と外側でアクセスできますが、変数 'b' はブロック内でのみアクセスできます。
変数、スコープ、型を理解することは、明確で効果的なプログラムを作成するための基礎です。変数に慎重に名前を付けて使用することで、機能的で理解しやすいコードを作成できます。