Maison  >  Article  >  interface Web  >  Que récupérez-vous lorsque vous utilisez des opérateurs logiques en JavaScript ?

Que récupérez-vous lorsque vous utilisez des opérateurs logiques en JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-22 10:02:16917parcourir

What Do You Get Back When You Use Logical Operators in JavaScript?

Naviguer dans les retours non booléens des opérateurs logiques en JavaScript

Alors que la question se concentre sur l'absence de retours booléens dans des expressions logiques spécifiques, il met en évidence un concept plus large en JavaScript concernant le comportement des opérateurs logiques || (OR) et && (AND).

En JavaScript, || et && sont des opérateurs de court-circuit qui se terminent tôt une fois qu'ils rencontrent une valeur logique entièrement déterminée. Cela signifie que l'évaluation du deuxième opérande est ignorée si le premier opérande est suffisant pour déterminer le résultat.

Par exemple, dans l'expression X || Y, si X est évalué à une valeur véridique (tout ce qui n'est pas explicitement faux : vrai, un objet, une chaîne, etc.), alors X est renvoyé immédiatement, rendant l'évaluation de Y inutile.

De même, dans X && Y, si X est évalué à false, alors l'évaluation s'arrête et X est renvoyé, contournant à nouveau Y.

La bizarrerie survient lorsque l'expression est évaluée à une valeur falsey. Avant JavaScript 1.2, l'opérateur renvoyait la valeur booléenne false. Cependant, à partir de JavaScript 1.2, la valeur évaluée réelle est renvoyée.

Par conséquent, dans les expressions fournies :

  1. (obj.fn && obj.fn()) || obj._ || (obj._ = {}) : Si obj.fn existe et est évalué à une valeur véridique, l'expression renverra le résultat de obj.fn(). Sinon, il renverra obj._ s'il est défini ou créera un nouvel objet et l'attribuera à obj._ si obj._ n'est pas défini.
  2. obj && obj._ : cela se traduit simplement par obj._ si obj est véridique, sinon obj est renvoyé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn