var x = {}; x.undefined = "Hello World!"; var y; //Prints "Hello World!" console.log(x[y]);
Working jsFiddle
为什么会这样呢?是因为this,它返回一个字符串而不是实际的未定义?
后来当你做的时候,console.log(x [y]),你正在x中寻找y.对象的键是字符串,所以y被转换成一个字符串.当未定义转换为字符串时,将变为“未定义”.这就是为什么’你好世界!’被退回