Undefined は対象に値が何も入っていない状態を表します。
変数定義時に値を指定しない場合や、
let foo;
// foo === undefined引数を要求する関数で引数を渡さなかった場合、
const fn = str => { /* ... */ };
fn(); // str === undefinedなどによく見られます。
安全な undefined 確認
実を言うと undefined は予約語として扱われていないので、コードを書く人が好きに値を設定できてしまいます。もしも、誰かが変な値を指定してしまうと今書いているコード部分の=== undefinedで比較している箇所がうまく動かなくなるかもしれません。
そのようにならないようにundefinedの代わりにvoid 式を使うと良いです。void 式は式に関係なく必ずundefinedを返す式です。
// どこか遠い所
const undefined = 'foo';
// ---
const myFunction = () => {
console.log(undefined); // 'foo' 😱
// 以下の式が`false`に
console.log(undefined === void 0);
}
myFunction();