recherche

Maison  >  Questions et réponses  >  le corps du texte

L'utilisation d'undefined comme clé de propriété garantit-elle que le résultat sera indéfini ?

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.

P粉504920992P粉504920992372 Il y a quelques jours534

répondre à tous(1)je répondrai

  • P粉340980243

    P粉3409802432024-01-17 12:46:19

    Non, visitez obj[undefined] 并不总是返回 undefined。与用作属性名称的任何值一样,undefined 将被强制转换为字符串(除非它是符号),因此它实际上会访问名为“undefined”的属性。 obj[undefined] 等价于 obj["undefined"]obj.undefined。如果存在这样的属性,它将返回属性值,例如当 obj = {undefined: true};.

    Tu devrais vraiment écrire

    someField != null ? myObject[someField] : undefined;

    Si someField: 未定义 |字符串.

    répondre
    0
  • Annulerrépondre