変数と宣言
JavaScriptで新しい変数を宣言するのには、 var / const*ES2015 / let*ES2015 の3つがあります。
const と let はブロックレベルの変数を宣言することができます。
var
var は変数を宣言した関数内で使用できます。(関数スコープ)
function sampleFunc() {
var funcVal = 'Function Value' ;
console.log( funcVal ) ; // Function Value
}
sampleFunc() ;
console.log( funcVal) ; // スコープ外でエラーとなる ReferenceError: funcVal is not defined関数内であれば、ブロック外でも参照可能です。
値が設定されるまでは undefined となります。
function sampleFunc() {
console.log( val ) ; // undefined
if (true) {
var val = 'value' ; // ブロック内で宣言
console.log( val ) ; // value
}
console.log( val ) ; // value
}
sampleFunc() ;const
const は再代入できない変数です。
宣言したブロック内で使用できます。(ブロックスコープ *ES2015 )
const globalVal = 'Global const value' ;
if (true) {
const localVal = 'Local const value' ;
console.log( globalVal ) ; // Global const value
console.log( localVal) ; // Local const value
}
console.log( globalVal ) ; // Global const value
console.log( localVal ) ; // スコープ外でエラーとなる ReferenceError: localVal is not defined
globalVal = 'ABC' ; // タイプエラーとなる Uncaught TypeError: Assignment to constant variable.let
let は再代入可能な変数です。
宣言したブロック内で使用できます。(ブロックスコープ *ES2015 )
let globalVal = 'Global const value' ;
if (true) {
let localVal = 'Local const value' ;
console.log( globalVal ) ; // Global const value
console.log( localVal) ; // Local const value
}
console.log( globalVal ) ; // Global const value
console.log( localVal ) ; // スコープ外でエラーとなる ReferenceError: localVal is not defined
globalVal = 'ABC' ;
console.log( globalVal ) ; // ABC参考リンク
MDN 開発者向けのウェブ技術 > var
MDN 開発者向けのウェブ技術 > const
MDN 開発者向けのウェブ技術 > let
MDN 開発者向けのウェブ技術 > JavaScript のデータ型とデータ構造
MDN 開発者向けのウェブ技術 > JavaScript「再」入門
