Я хочу иметь возможность различать d.one и d.three. По умолчанию они оба оцениваются как false, но в моем случае они не должны рассматриваться одинаково.
Ответ 1
Вы можете сделать
"one" in d // or "two", etc
или
d.hasOwnProperty("one")
Вероятно, вы хотите hasOwnProperty, поскольку оператор in также вернет true, если свойство находится в объекте в цепочке прототипов. например.
"toString" in d // -> true
d.hasOwnProperty("toString") // -> false
Ответ 2
Значения не являются строгими:
js> d={one: false, two: true}
[object Object]
js> d.one == false
true
js> d.three == false
false
js> d.three === false
false
js> d.three === undefined
true
js> 'three' in d
false
js> 'one' in d
true