🦔
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
を照合させることが重要です.
undefined
であることを確認する
案1:型がif(typeof hensuu === "undefined") {
// 処理
}
undefined
が返るvoid
を使う
案2:確実にif(hensuu === void 0) {
// 処理
}
void ""
でも void 999
でもなんでもいいが,void 0
を慣習があるらしい.
でも,これを初見でなにこれ?と感じる人が多い環境だと可読性は低いということになりそう.
利点は短いくらい.
Discussion