変数定義

再代入

varキーワードで宣言された変数は再代入可能

var varVariable = true
varVariable = false

console.log(varVariable)
// 結果:false

constキーワードで宣言された変数は再代入不可

const constVariable = true
constVariable = false 

// 結果:
/**
TypeError: Assignment to constant variable.
 */

スコープ

varキーワードで宣言された変数はifブロック内でスコープを持つことはできない

var pos = 'ifの外側で宣言'

if (pos) {
  var pos = 'ifの内側で宣言'
  
  console.log('block', pos)
  // block ifの内側で宣言
}

console.log('global', pos)
// global ifの内側で宣言

letキーワードで宣言された変数はifブロック内でスコープを持つ