JavaScriptの変数について(var、let、constの違い)

  • 2020年10月11日
  • 2021年7月5日
  • JavaScript
  • 17view

変数

値に名前を付けるて「変数」にする事で、繰り返し利用出来るようにする。

変数の宣言の種類は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には計算結果やカウンターなどの様に値が変わることが想定される値を宣言する。

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
  • Attributes
  • Custom attributes
  • Custom fields
Click outside to hide the compare bar
Compare
Compare ×
Let's Compare! Continue shopping