Categories: JavaScript

【JavaScript入門】変数のスコープ

変数のスコープ

js

var scope = 'global';

function getVal(){
    var scope = 'local';
    return scope;
}

console.log(getVal());//local
console.log(scope);//global

var宣言されない変数はすべてグローバル変数と見做されます。
以下のようにgetVal内のscopeをvar宣言無しで記述すると、グローバル変数のscopeを指すことに成るので、値が上書きされます。

js

var scope = 'global';

function getVal(){
    scope = 'local';
    return scope;
}

console.log(getVal());//local
console.log(scope);//local

ブロックスコープ

var宣言

var宣言の場合、f分のスコープ内で宣言した変数が、外でも使えてしまいます。
これを回避するには後述のletまたはconstで宣言する必要があります。

js

if(true){
    var i = 100;
}
console.log(i);//100

let変数、const定数

let変数はブロックスコープに対応した宣言です。
以下のコードはブロック外のため、エラーになります。 constもブロックスコープに対応しています。

js

if(true){
    let i = 100;
}
console.log(i);//ここで実行時エラー

なお、var宣言であっても関数の外では使えません。

js

function sample(){
    var x = 10;
    var y = 20;
    console.log(x * y);
}
console.log(x);//ここで実行時エラー。

以上で記事の解説はお終い!

HTML、CSS、JavaScriptをもっと勉強したい方にはUdemyがオススメ!同僚に差をつけよう!

issiki_wp