遍历 JavaScript 对象时是否可以将 undefined 作为键?

Is it possible to have undefined as a key when foreaching over a JavaScript object?

我一直在进行代码审查,我看到这样的代码:

var a = { ... }; // in reality, an actual object filled with key-value pairs
for (var key in a) {
    if (!angular.isUndefined(key)) { // does this ever fail?
        do.stuff();
    }
}

我的问题是 key 是否可以未定义(或根据 angular.isUndefined 评估为 true)。这似乎不太可能,因为当我尝试执行以下操作时:

var a = { undefined: 'hello' }

原来undefined其实是一个String.

My question is whether key can ever be undefined

没有。对象的所有键(属性 名称)都转换为字符串。