🦔
JavaScriptでundefinedをちゃんと判定するよ
JavaScriptでundefinedをちゃんと判定する
hensuu === undefinedは実は最適解ではない
ある変数がnullでも0でもなく,undefinedかどうかを判定したいときに
if(hensuu === undefined) {
// 処理
}
のように書きたくなりますが,実はundefinedは予約後でないので,変数名として使われてしまうことがおきた場合にこれは成立しなくなります.
let hensuu // 初期値としてundefinedが入る
const undefined = 1 // なんてことをするんだ!
if(hensuu === undefined) {
console.log("hensuu is undefined")
}
じゃあどうすれば?
undefinedが変数である可能性が出てきてしまうことに問題があるので,確実undefinedを照合させることが重要です.
案1:型がundefinedであることを確認する
if(typeof hensuu === "undefined") {
// 処理
}
案2:確実にundefinedが返るvoidを使う
if(hensuu === void 0) {
// 処理
}
void "" でも void 999でもなんでもいいが,void 0を慣習があるらしい.
でも,これを初見でなにこれ?と感じる人が多い環境だと可読性は低いということになりそう.
利点は短いくらい.
Discussion