Every now and then, I see this pattern:

```
if (!obj[key]) {
    // key does not exist inside object
    obj[key] = ...
} else {
    // maybe do something else with obj[key]
}

```

but I find it extremely wrong. What if actually obj[key] has the value `false` or `''` ?
Then the code doesn't make any sense to me.

Is there a reason I see this so often ? Why people don't use `.hasOwnProperty()` to check whether or not a `key` exists as a property of an object ?