表
再宣言 | 再代入 | スコープ | |
var | o | o | 関数スコープ |
let | x | o | ブロックスコープ |
ブロックスコープとは
<script>
function hoge(){
if(true){
var var_str = 'this is var';
let let_str = 'this is let';
}
console.log(var_str); // this is var
console.log(let_str); // Uncaught ReferenceError: let_str is not defined
}
hoge();
</script>
varで宣言した変数は同じ関数内で生き続けるが、
letで宣言した変数は同じ関数内だろうと、ブロックの中でしか生きれない。
コメント