考虑以下
内容
var x = {};
x.undefined = "Hello World!";
var y;
//Prints "Hello World!"
console.log(x[y]);
Working jsFiddle
为什么会这样呢?是因为this,它返回一个字符串而不是实际的未定义?
当你做x.undefined你设置一个名为’undefined’的
属性.它与未定义的
名称(可写的保留字变量:false)是一致的.
后来当你做的时候,console.log(x [y]),你正在x中寻找y.对象的键是字符串,所以y被转换成一个字符串.当未定义转换为字符串时,将变为“未定义”.这就是为什么’你好世界!’被退回
原文链接:https://www.f2er.com/js/152509.html