Dans le cas de récupération des propriétés d'un objet via des variables, soit :
myObject[someField]
someField
(它是一个字符串)有可能是未定义
(可能是未初始化的字符串值的结果)。我的实验表明,对于我能想到的所有类型的对象,结果都是未定义
, c'est-à-dire :
anyObject[undefined] === undefined
Est-ce un comportement bien connu, puis-je lui faire confiance ? Je n'arrive pas à trouver quelque chose dans la documentation pertinente, mon alternative est de réécrire ce qui précède en
someField ? myObject[someField] : undefined;
Mais s'il est garanti que chaque fois que nous essayons d'accéder à la propriété undefined
时都会返回 undefined
, alors je préférerais vraiment la manière concise.
Non, visitez
obj[undefined]
并不总是返回undefined
。与用作属性名称的任何值一样,undefined
将被强制转换为字符串(除非它是符号),因此它实际上会访问名为“undefined”的属性。obj[undefined]
等价于obj["undefined"]
或obj.undefined
。如果存在这样的属性,它将返回属性值,例如当obj = {undefined: true};
.Tu devrais vraiment écrire
Si
someField: 未定义 |字符串
.