var
宣言や関数宣言は同じスコープで再宣言可能だが、let
やconst
、class
宣言でやるとエラー。
'use strict'
// var宣言はstrictモードでも再宣言できる。
var var変数 = 'トップ'
var var変数 = 'トップその2'
// 関数宣言も再宣言できる。
function 関数() {}
function 関数() {}
// letはstrictモードでなくても再宣言できない。const宣言も以下同様。
let let変数 = 'トップ'
// let let変数 = 'トップその2' // SyntaxError
// 一度let宣言したものはvarといえども再宣言できない。
// var let変数 = 'トップその2' // SyntaxError
// class宣言は再宣言できない。
class クラス {}
// class クラス{} // SyntaxError