← 返回首页
TypeError: "x" is (not) "y" - JavaScript | MDN

Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

TypeError: "x" is (not) "y"

Message

TypeError: Unable to get property {x} of undefined or null reference (Edge) TypeError: "x" is (not) "y" (Firefox)

Exemples :

TypeError: "x" is undefined TypeError: "x" is null TypeError: "undefined" is not an object TypeError: "x" is not an object or null TypeError: "x" is not a symbol

Dans cet article

Type d'erreur

TypeError.

Quel est le problème ?

Un type inattendu a été rencontré. Cela se produit la plupart du temps avec les valeurs undefined ou null.

Certaines méthodes comme Object.create() ou Symbol.keyFor() ont des contraintes sur le type de valeur qui peut être passé en argument.

Exemples

Exemples invalides

js
// undefined et null : des valeurs // sur lesquelles la méthode substring // ne fonctionnera pas var toto = undefined; toto.substring(1); // TypeError: toto is undefined var toto = null; toto.substring(1); // TypeError: toto is null // Certaines méthodes nécessitent une valeur // d'un type spécifique var toto = {}; Symbol.keyFor(toto); // TypeError: toto is not a symbol var toto = "truc"; Object.create(toto); // TypeError: "toto" is not an object or null

Résoudre le problème

Pour résoudre ce problème et écarter les cas où la valeur vaut undefined, on peut par exemple utiliser l'opérateur typeof.

js
if (typeof toto !== "undefined") { // Désormais, on sait que toto est bien // défini et on peut poursuivre. }

Voir aussi