2017-06-06 1 views
0

Si j'ai un objet qui a une propriété que peut ou non exister, est-il un moyen privilégié pour vérifier sa existence?moyen privilégié pour vérifier la propriété d'objet est `` null` ou undefined`

// Good? 
(someObj.property !== undefined && someObj.property !== null) 

// Better? 
(typeof someObj.property !== 'undefined') 

// Best? 
(someObj.property != null) 

* Le dernier opérateur != est on purpose:

contrôles d'égalité stricte (===) doivent être utilisés en faveur des contrôles à l'égalité abstraite (==). La seule exception est lors de la vérification pour undefined et null au moyen de null. L'utilisation de == null est également acceptable dans les cas où un seul parmi null ou undefined peut être rencontré de manière logique, comme des variables non initialisées.

+0

Le premier et le dernier sont équivalents. Celui du milieu ne vérifie pas les valeurs 'null'. Donc d'abord cela dépend de ce que vous voulez. Ensuite, cela dépend de combien vous voulez taper;) Utiliser ou non '! = Null' est une préférence personnelle. –

+0

si (someObj.property) pour tout sauf les booléens? –

+0

@Jonasw: Et les chaînes vides, '0',' NaN'. –

Répondre