373 votes

Explication de l'affectation des variables OR (||) en JavaScript

Étant donné ce bout de JavaScript...

var a;
var b = null;
var c = undefined;
var d = 4;
var e = 'five';

var f = a || b || c || d || e;

alert(f); // 4

Quelqu'un peut-il m'expliquer comment s'appelle cette technique (ma meilleure supposition est dans le titre de cette question !)? Et comment/pourquoi elle fonctionne exactement ?

Si je comprends bien, la variable f se verra attribuer la valeur la plus proche (de gauche à droite) de la première variable dont la valeur n'est ni nulle ni indéfinie, mais je n'ai pas réussi à trouver beaucoup de matériel de référence sur cette technique et je l'ai vue utilisée à plusieurs reprises.

Par ailleurs, cette technique est-elle spécifique à JavaScript ? Je sais que si l'on fait quelque chose de similaire en PHP, on obtient les résultats suivants f ayant une valeur booléenne vraie, plutôt qu'une valeur de d lui-même.

3voto

Vijay Points 148

C'est un opérateur de court-circuit.

L'évaluation en court-circuit dit que le deuxième argument est exécuté ou évalué uniquement si le premier argument ne suffit pas à déterminer la valeur de l'expression. Lorsque le premier argument de la fonction OU (||) est évalué à vrai, la valeur globale doit être vraie.

Il peut également être utilisé pour définir une valeur par défaut pour un argument de fonction.

function theSameOldFoo(name){ 
  name = name || 'Bar' ;
  console.log("My best friend's name is " + name);
}
theSameOldFoo();  // My best friend's name is Bar
theSameOldFoo('Bhaskar');  // My best friend's name is Bhaskar`

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X