LoginSignup
4
2

More than 3 years have passed since last update.

undefinedとReferenceErrorって何が違うの??

Last updated at Posted at 2020-07-19

初めに

新卒研修でJavaScriptに触れた時、違いがよくわからなかったので、それを初Qiita記事として投稿します:muscle:

私自身も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
undefined

最後に

私の初めてのQiitaへの投稿記事を最後まで読んでいただきましてありがとうございます:bow:

ChromeなどWebブラウザのデベロッパーツール内Consoleで、例としてあげたものを試し、結果をみてみるとさらに理解は深まると思うので是非やってみてください!

読みにくい箇所や解釈が間違っている箇所などございましたら、私自身の勉強にもなりますので、コメント等で教えていただけると幸いです。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2