JavaScriptの変数宣言について、調べたことを備忘録として書きたいと思います。
目次
参考
事象説明
sample1.js
// 以下のvarでの変数宣言をしても、しなくても関数でエラーが起きない理由は何であるか調べました。
var hoge = "";
// var hoge = "";
function testFunc() {
hoge = "";
console.log("hoge" + hoge);
}
変数宣言について
JavaScriptでの変数宣言方法
キーワード | 概要 | 例 |
---|---|---|
var | ローカル変数とグローバル変数の両方の宣言可能 | var x = 1 |
const, let | ブロックスコープ(if文などの波括弧の範囲)の変数として宣言可 | const y = 2 |
未宣言 | 宣言をせずに変数として利用 →グローバル変数として生成される | z = 3 (非推奨) |
勘違い
キーワードによる変数宣言をしなければ、エラーが発生すると思っていました。
(未宣言でも変数として利用することができる。)
まとめ
JavaScriptではキーワードでの宣言しなくても、変数として利用することができる。
ただし、厳格モード('use strict';)などではエラーが発生するため非推奨。
上記コードでは、エラーが発生する。
Uncaught ReferenceError: hoge is not defined