回答編集履歴

2

undefined 値が格納されたプロパティ存在チェック

2018/07/24 03:10

投稿

think49
think49

スコア18162

test CHANGED
@@ -1,3 +1,7 @@
1
+ ### プロパティの有無をチェック
2
+
3
+
4
+
1
5
  > `e.target.value`でDOMを取得して値が取れるか取れないかで比較をしたいです。
2
6
 
3
7
  >
@@ -28,4 +32,34 @@
28
32
 
29
33
 
30
34
 
35
+ ### undefined 値が格納されたプロパティ存在チェック
36
+
37
+
38
+
39
+ `in` 演算子、`typeof` 演算子でプロパティ有無をチェックするコードを書いた場合、
40
+
41
+
42
+
43
+ ```JavaScript
44
+
45
+ var target1 = {}, target2 = {value: undefined};
46
+
47
+
48
+
49
+ console.log('value' in target1); // false
50
+
51
+ console.log(typeof target1.value !== 'undefined'); // false
52
+
53
+ console.log('value' in target2); // true
54
+
55
+ console.log(typeof target2.value !== 'undefined'); // false
56
+
57
+ ```
58
+
59
+
60
+
61
+ `in` 演算子は `undefined` 値が格納されたプロパティを正しく認識しますが、``typeof` 演算子は「プロパティが存在しない」と**誤認**します。
62
+
63
+
64
+
31
65
  Re: tomuziso さん

1

space

2018/07/24 03:10

投稿

think49
think49

スコア18162

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  - (A) プロパティが存在しない
26
26
 
27
- - (B)プロパティが存在し、**undefinedが代入されている**
27
+ - (B) プロパティが存在し、**undefinedが代入されている**
28
28
 
29
29
 
30
30