初めに
新卒研修でJavaScriptに触れた時、違いがよくわからなかったので、それを初Qiita記事として投稿します
私自身もJavaScriptはまだまだ勉強中のため、
初めて触れる人がなんとなくでも理解出来ることを目的としてまとめております。
(細かい部分での違いや特徴に関しては、ひとまずおいといた解釈です)
undefind
未定義(宣言のみで何も代入していないよ!)って教えてくれているやつ。
→ エラーというわけではない
- undefind同士で比較することもできる
- 初期値としても利用出来る
###Q.nullとは何が違うの??
var a;
var b = null;
console.log(a);
=> undefined //aの中には何も入っていない
console.log(b); //bの中には"null"が入っている
=> null
null=空っぽ。という「値」
→bにはnullという「値」を宣言しているから、nullと出力される
undefinedはそもそも定義がされていない状態だから、「値」が入っていない
というのを教えてくれている状態
ReferenceError
宣言されていない変数を呼び出そうとしたときのエラー
2つの違いを表した例
//hogeを宣言(代入はしない
var hoge;
//hogeにはまだ何も入っていないのでundefind
console.log(hoge);
=> undefined
//宣言していない変数を参照しようとすると
//ReferenceErrorが発生する
console.log(fuga);
=> Uncaught ReferenceError: fuga is not defined
//ちゃんと宣言をするとReferenceErrorは発生しなくなる
var fuga;
console.log(fuga);
=> undefined
// fugaに何かを代入すると、undefinedを指さなくなる
fuga = "foo";
console.log(fuga);
=> foo
参考サイト
Mozillaのサイトにさらに詳しい例や解説があるので、さらに詳しいことを学ぶにはおすすめです!
[ReferenceError]
(https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError)
undefined
最後に
私の初めてのQiitaへの投稿記事を最後まで読んでいただきましてありがとうございます
ChromeなどWebブラウザのデベロッパーツール内Consoleで、例としてあげたものを試し、結果をみてみるとさらに理解は深まると思うので是非やってみてください!
読みにくい箇所や解釈が間違っている箇所などございましたら、私自身の勉強にもなりますので、コメント等で教えていただけると幸いです。