Maison  >  Article  >  interface Web  >  Introduction détaillée aux expressions de court-circuit dans les techniques d'optimisation Javascript_techniques Javascript

Introduction détaillée aux expressions de court-circuit dans les techniques d'optimisation Javascript_techniques Javascript

WBOY
WBOYoriginal
2016-05-16 16:07:231099parcourir

Qu'est-ce qu'une expression de court-circuit ?

Expression de court-circuit : en tant qu'expression d'opérande des opérateurs "&&" et "||", lorsque ces expressions sont évaluées, tant que le résultat final peut être déterminé comme étant vrai ou faux, le processus d'évaluation sera La terminaison, c'est ce qu'on appelle l'évaluation de court-circuit. C'est une propriété importante de ces deux opérateurs.

L'exemple le plus simple :

Copier le code Le code est le suivant :

foo = foo||bar;

Que signifie cette ligne de code ? Réponse :

Copier le code Le code est le suivant :

//Si foo existe, la valeur reste inchangée, sinon attribuez la valeur de bar à foo
si(!foo)
foo = bar;

Dans le fonctionnement logique de JavaScript, 0, "", null, false, undefined et NaN seront tous jugés comme faux, tandis que tout le reste sera jugé comme vrai. Ainsi, dans la formule ci-dessus foo = foo||bar;, || calcule d'abord le premier opérande, s'il peut être converti en vrai, ce qui signifie que foo a déjà une valeur, alors la valeur de l'expression de gauche est renvoyée. sinon Calculez la barre du deuxième opérande.

De plus, même si l'opérande de l'opérateur || n'est pas une valeur booléenne, il peut toujours être considéré comme une opération booléenne OU, car quel que soit le type de valeur qu'il renvoie, il peut être converti en valeur booléenne. .

Bien sûr, il serait plus rigoureux d'utiliser l'approche suivante :

Copier le code Le code est le suivant :

if(foo) //Pas assez rigoureux

if(!!foo) //Plus rigoureux, !! peut convertir d'autres types de valeurs​​en type booléen

Vous pouvez le tester :

Copier le code Le code est le suivant :

var foo;
numéro var = 1;
var chaîne = "chaîne";
var obj = {};
var arr = [];


console.log(typeof(foo)); // non défini
console.log(typeof(numéro)); //numéro
console.log(typeof(string)); //string
console.log(typeof(obj)); //objet 
console.log(typeof(arr)); //objet

console.log(typeof(!!foo)); // booléen
console.log(typeof(!!number)); //boolean
console.log(typeof(!!string)); //boolean
console.log(typeof(!!obj)); //boolean
console.log(typeof(!!arr)); //booléen

L'utilisation de ceci peut être très cohérente avec ce qui est mentionné dans l'article Optimiser les projets JavaScript, de sorte que le script s'exécute moins ou pas du tout pour atteindre l'objectif d'optimisation de JavaScript. Cependant, il convient de noter que si écrire de cette manière nous aide à rationaliser le code, cela présente également l'inconvénient de réduire la lisibilité du code. Il est donc préférable d'ajouter des commentaires appropriés.

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