I'll add that the difference in behavior between null and undefined is pretty subtle and not necessarily intuitive. Are there other options for producing this behavior? What if the attribute exists at all with a value of null or undefined? I believe that Object.hasOwnProperty() will return true for both cases.