typeof の undefined 確認をあまり見かけないです
- カテゴリ:
- JavaScript
- コメント数:
- Comments: 0
◆ グローバルの undefined はイミュータブル
◆ 普通は未宣言の変数を undefined 確認しないし typeof なしで直接比較で良さそう
◆ 普通は未宣言の変数を undefined 確認しないし typeof なしで直接比較で良さそう
typeof val === "undefined" って最近あまり見ない気がします
グローバルの undefined は configurable が false でイミュータブルですし ローカルにわざわざ undefined なんて宣言しないでしょうし val === undefined で十分ってことでしょうか
私もそれしかつかってないですけど
あえて使う時といえば 宣言されてるかわからないときです
typeof なしでいきなり変数にアクセスすると 宣言されてないと ReferenceError で not defined と言われてしまいます
でも ほとんどのときって 宣言されてますよね
宣言すらされてない可能性があるのを確認なんて eval 系でもつかわないと起きない気がします
if 文内で var 使っていてもスコープの最初で初期化されるので↓のコードでもエラーは起きないです
普通無いでしょうけど ローカルで undefined 宣言して別の値を代入してる場合に undefined かの確認には使えそうです
他にも色々ありますけど
こんなことする人いないでしょうけど
グローバルの undefined は configurable が false でイミュータブルですし ローカルにわざわざ undefined なんて宣言しないでしょうし val === undefined で十分ってことでしょうか
私もそれしかつかってないですけど
あえて使う時といえば 宣言されてるかわからないときです
typeof なしでいきなり変数にアクセスすると 宣言されてないと ReferenceError で not defined と言われてしまいます
でも ほとんどのときって 宣言されてますよね
宣言すらされてない可能性があるのを確認なんて eval 系でもつかわないと起きない気がします
if 文内で var 使っていてもスコープの最初で初期化されるので↓のコードでもエラーは起きないです
function f(){
if(false){
var a = 1
}
console.log(a)
}
f()
if(false){
var a = 1
}
console.log(a)
}
f()
普通無いでしょうけど ローカルで undefined 宣言して別の値を代入してる場合に undefined かの確認には使えそうです
他にも色々ありますけど
function f(arg){
var undefined = "not undefined"
console.log(arg === undefined) // false
console.log(typeof arg === "undefined") // true
console.log(arg === void 0) // true
console.log(arg === [][0]) // true
}
f()
[][0] は多分一番短く書ける方法ですが Array.prototype[0] = 100 などしてしまえば false にできるので他より確実とはいえないかもですvar undefined = "not undefined"
console.log(arg === undefined) // false
console.log(typeof arg === "undefined") // true
console.log(arg === void 0) // true
console.log(arg === [][0]) // true
}
f()
こんなことする人いないでしょうけど