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();