2

我刚刚尝试了以下代码(在 javascript 中),它应该返回“这是完全未定义的”,但它不起作用:

 var foo = {'foo' : 'bar', undefined : 'This is totally undefined!'};
 alert( foo['toomany foobars'.match(/asdf/)] );

然而这完美地工作:

 var foo = {'foo' : 'bar', undefined : 'This is totally undefined!'};
 alert(foo[undefined]);

没看懂,有大神解释一下吗?

非常感谢提前

4

1 回答 1

1

那是因为

'toomany foobars'.match(/asdf/) === null
null !== undefined

现在,另一方面,如果你有这个

var foo = {'foo' : 'bar', undefined : 'This is totally undefined!', null: 'and this one is null'};
alert( foo['toomany foobars'.match(/asdf/)] );

你会看到它工作。


发生这种情况的原因是这undefined是 JavaScript 中的一个值,并且null是另一个值。当您在字典查找中使用这两个时,它们将返回(并且应该返回)不同的结果。

于 2013-09-14T21:28:04.360 回答