Maison >interface Web >js tutoriel >Comment les opérateurs logiques JavaScript peuvent-ils renvoyer des objets ?
Comprendre les opérateurs logiques en JavaScript : pourquoi ils peuvent renvoyer des objets
En JavaScript, les opérateurs logiques comme && (et) et || (ou) sont généralement censés être évalués à des valeurs booléennes (vrai ou faux). Cependant, dans certains scénarios, ils peuvent également renvoyer des objets. Ce comportement surprenant peut au début laisser perplexe.
Pour approfondir ce phénomène, analysons les extraits de code suivants :
var _ = (obj.fn && obj.fn()) || obj._ || (obj._ = {}); var _ = obj && obj._;
Dans le premier exemple, obj.fn est initialement évalué. S'il est défini, le résultat de l'expression obj.fn() est renvoyé. Sinon, l'expression obj._ est évaluée, ou un nouvel objet est créé si ni obj.fn ni obj._ n'existent.
De même, dans le deuxième exemple, obj est évalué en premier. Si obj existe (est évalué à vrai), le résultat est la valeur de obj._. Cependant, si obj n'existe pas (est évalué à faux), la valeur obj d'origine elle-même est renvoyée.
Dévoilement du comportement logique de court-circuit
Ce comportement découle de la nature logique de court-circuit de && et ||. En d'autres termes, ces opérateurs tentent de renvoyer une « valeur logique » le plus rapidement possible, évitant ainsi les évaluations inutiles où le résultat est déjà clair.
Dans le cas de ||, si l'expression de gauche est évaluée à vrai, il est renvoyé instantanément et l'expression de droite n'est pas du tout évaluée. À l'inverse, si l'expression de gauche est évaluée comme fausse, l'expression de droite est évaluée et renvoyée.
Mensonge et retour de valeur en JavaScript
L'autre aspect qui Ce qui influence ce comportement est la façon dont les valeurs fausses sont traitées en JavaScript. Les valeurs fausses en JavaScript incluent false, 0, NaN, les chaînes vides, null et non définies.
Avant la version 1.2 de JavaScript, || a renvoyé false lorsque l'expression a été évaluée à false. Cependant, à partir de la version 1.2, il renvoie la valeur réelle de l'expression. Cela signifie que si l'expression de gauche est fausse, la valeur de l'expression de droite sera renvoyée.
De même, pour &&, si l'expression de gauche est évaluée comme vraie, l'expression de droite est évalué et sa valeur est renvoyée. Cependant, si l'expression de gauche est évaluée comme false, false est renvoyé dans JS 1.0 et 1.1, tandis que la valeur de l'expression de gauche est renvoyée à partir de JS 1.2.
Conclusion
Comprendre le comportement logique du court-circuit et le traitement par JavaScript des valeurs fausses est crucial pour comprendre le valeurs de retour parfois surprenantes des opérateurs logiques. En reconnaissant que ces opérateurs donnent la priorité à l'efficacité et que le mensonge peut avoir différentes interprétations en JavaScript, vous pouvez naviguer en toute confiance dans les complexités de ces opérateurs.
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!