2010-07-12 5 views
2

En Python, et peut-être en Javascript, les or et and booléennes opérateurs renvoient l'un des opérandes, au lieu de true ou false.opérateurs booléens qui renvoient l'un des opérandes

  • En Python, l'un des opérandes est renvoyé: '' || 'hello' == 'hello'
  • En comparaison, en PHP: '' || 'hello' == true;

Maintenant,

  • Comment ce comportement des opérateurs booléens appelé?
  • Est-ce que cela fonctionne aussi en Javascript dans tous les navigateurs?

Répondre

2

En tant que Ignacio's answer souligne, ce sont coalescence opérateurs. || est le null coalescing operator, && est l'opérateur de coalescence null-safe ( lien à suivre, si je peux trouver un désolé, je ne peux pas trouver un lien).

Ils devraient être disponibles dans tous les navigateurs - ils sont tous deux définis dans les 1ère, 2ème, 3ème et 5ème éditions ECMA-262, la plupart des implémentations Javascript actuelles sont basées sur la 3ème ou la 5ème. De ECMA-262 3ème édition:

Le LogicalANDExpression de production: LogicalANDExpression & & BitwiseORExpression est évaluée comme suit:
1. Évaluer LogicalANDExpression.
2. Appelez GetValue (Result (1)).
3. Appelez ToBoolean (Résultat (2)).
4. Si le résultat (3) est faux, renvoyez Résultat (2).
5. Evaluez BitwiseORExpression.
6. Appelez GetValue (Résultat (5)).
7. Résultat (6).

La production LogicalORExpression: LogicalORExpression || LogicalANDExpression est évalué comme suit: :
1. Évaluer LogicalORExpression.
2. Appelez GetValue (Result (1)).
3. Appelez ToBoolean (Résultat (2)).
4. Si le résultat (3) est vrai, renvoyez le résultat (2).
5. Évaluez LogicalANDExpression.
6. Appelez GetValue (Résultat (5)).
7. Résultat (6).

1

On l'appelle "coalescence". Il devrait se comporter de la même manière dans tout navigateur prétendant être conforme.

Questions connexes