Utilisation de underscore.js pour la vérification nulle

var name = "someName"; if(name !=null) { // do something } 
  1. Je suis actuellement en utilisant http://underscorejs.org/#isNull , comment ferais-je la même chose en utilisant underscore.js
  2. Est-ce que cela donne une légère amélioration en termes de performances pour de telles fonctions.

En trait de soulignement, vous pouvez utiliser

 if(!_.isNull(name)) {} 

Et en version javascript, vous devez utiliser

 if(name !== null) {} 

Vous devriez éviter l'opérateur d'inégalité lâche != Car il tape la contrainte et undefined != null renverra false .

L'utilisation du Javascript simple est légèrement plus rapide car il ne faut pas invoquer une fonction, mais il sera imperceptible et il ne devrait guère être considéré.

Je n'ai pas une forte préférence dans les deux cas, tant que la lisibilité va, mais il semble un peu excessif et verbose d'appeler une fonction de bibliothèque pour un tel contrôle simple.

Bien, votre code original est erroné car si le name est une chaîne vide, false , le numéro 0 ou toute autre valeur fausse, il sera considéré comme null pour ce qui est de votre test.

En règle générale, appeler TOUTE fonction est un frais généraux qui devrait être évité si possible. Dans ce cas, appeler une fonction juste pour tester si une valeur est nulle, lorsque vous pourriez très simplement écrire simplement if( name === null) est juste stupide, IMO …

Dans underscore.js, vous devez l'écrire pour obtenir cette fonctionnalité.

 var name = "someName"; if(!(_.isNull(name ))) { // do something } 

Dans la fonction underscore.js isNull est écrit comme ceci

 _.isNull = function(obj) { return obj === null; }; 

Donc, la différence utilise == dans votre code et === dans underscore.js.Pour plus de détails sur cette différence, vous pouvez consulter cette question.

Qui équivaut à l'opérateur (== vs ===) devrait être utilisé dans les comparaisons JavaScript?

PS Je suggérerais d'écrire votre propre condition au lieu d'utiliser n'importe quelle bibliothèque dans un endroit si simple.

 var name = "someName"; if(name !== null)) { // do something } 
 if ((!(_.isUndefined(data)) || _.isEmpty(data))) { //Valid Data }else {//Not Valid}