変数
値に名前を付けるて「変数」にする事で、繰り返し利用出来るようにする。
変数の宣言の種類は3種類
var
これは古いので、覚えなくて良し
const
再代入ができない変数の宣言
→常に同じ値を示す、つまり定数に出来る
let
再代入が可能な変数の宣言
→中身は変更されていく
var、const、letのスコープの違い
varはグローバルスコープ
const letはブロックスコープである。ブロックスコープとはそのブロック内でのみ使用できるスコープである。ちなみに{}で囲まれた部分がブロック。
var x = 5;
console.log(x);
// 「5」
if(true){
var x = 1;
console.log(x);
// 「1」
}
console.log(x);
// 「1」
varの場合はグローバルスコープなので、xは常に同じ扱いを受ける。
上から処理が走り、x=1で上書きされたので、2つ目、3つ目のconsole.log(x)では「1」が出力されている。
let x = 5;
console.log(x);
// 「5」
if(true){
let x = 1;
console.log(x);
// 「1」
}
console.log(x);
// 「5」
letの場合はブロックスコープである。なので、ifの{}で囲まれた範囲で定義されたlet x = 5は、同じブロック内でしか適応されない。
その為、3つ目のconsole.log(x)は「1」となる。
巻き上げの違い
巻き上げとは、宣言された変数を場所に関係なく、先頭で宣言されたものとして扱うというものである。
varには巻き上げがあり、let,constには巻き上げの挙動はない。
console.log(x);
// varは巻き上げがあるので、「10」が表示される
console.log(y);
// letは巻き上げが無いので、エラーが表示される
var x = 10;
let y = 5;
letとconstの違い
letは再代入可能で、constは不可能である。
その為、constでは中身が変わって欲しくない定数を宣言し、letには計算結果やカウンターなどの様に値が変わることが想定される値を宣言する。