在对JavaScript对象进行预处理时,是否可以将undefined作为键?

geo*_*off 3 javascript undefined

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

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

var a = { undefined: 'hello' }
Run Code Online (Sandbox Code Playgroud)

事实证明,这undefined实际上是一个String.

Fel*_*ing 5

我的问题是,是否key可以undefined

不可以.对象的所有键(属性名称)都将转换为字符串.