Maison  >  Article  >  interface Web  >  Explication sur l'utilisation des opérateurs js barre verticale unique "|" et "||"

Explication sur l'utilisation des opérateurs js barre verticale unique "|" et "||"

亚连
亚连original
2018-05-19 14:30:357277parcourir

Dans les applications de développement js, nous rencontrons généralement "|" et "||", alors que signifient "|" et "||" dans les opérations ? Cet article présente principalement l'explication détaillée de l'utilisation des opérateurs js à barre verticale unique "|" et "||".

Dans les applications de développement js, nous rencontrons généralement "|" et "||", alors que signifient "|" et "||" dans les opérations ?

En opération js entier, cela équivaut à supprimer le point décimal, parseInt. Lorsqu'il s'agit d'un nombre positif, cela équivaut à Math.floor(), lorsqu'il s'agit d'un nombre négatif, cela équivaut à Math.ceil() Remarque :

1 Math.ceil() est utilisé. pour arrondir.
2. Math.floor() est utilisé pour arrondir.
3. Math.round() L'arrondi est couramment utilisé dans nos mathématiques.


console.log(0.6|0)//0
console.log(1.1|0)//1
console.log(3.65555|0)//3
console.log(5.99999|0)//5
console.log(-7.777|0)//-7

Règles de fonctionnement des barres verticales simples

Après avoir lu l'exemple ci-dessus, nous savons généralement que les barres verticales simples peuvent être extrait L'opération d'intégration signifie que seule la partie positive est conservée et la partie décimale est supprimée. Mais comment « |0 » est-il calculé ? Pourquoi « |0 » peut-il atteindre l'objectif d'arrondi ? Si la barre horizontale et verticale n’est pas 0, que serait-elle ?

Avec ces questions, regardons l'exemple suivant :


console.log(3|4); //7
console.log(4|4);//4
console.log(8|3);//11
console.log(5.3|4.1);//5
console.log(9|3455);//3455

La barre horizontale et verticale "|" est mentionnée ici mais il n'y a pas javascript.

D'accord, laissez-moi annoncer la réponse ici. En fait, l'unique barre verticale "|" est le résultat de l'ajout après conversion en binaire. Par exemple, prenons un exemple simple :

3|4

Après la conversion en binaire, 011|100 est ajouté pour obtenir 111=7

4| 4

Après la conversion en binaire, 100|100 est ajouté pour obtenir 100=4

8|3

Après avoir été converti en binaire, 1000 |011 est ajouté pour obtenir 1011=11

Par analogie, je ne les listerai pas un par un ici. L'opération unique barre verticale "|" est le résultat de l'ajout après conversion en binaire !

Opérateur à double barre verticale JS

1. Opérateur à double barre verticale JS : oui ou comparaison Tel que null||'1', renvoie '1' ; 2'||'1', renvoie '2'. Autrement dit, dans l'opérateur OR, le premier est vrai et les suivants n'ont pas besoin d'être calculés. Nous obtenons donc '2'.

2. Utilisez l'opérateur double barre verticale "||" en js pour renvoyer la première valeur valide


var objOne = undefined || 1 || null || new Date(); 
var objTwo = new Date(); 
var objThree = objOne || objTwo; 
alert(objThree.toString()); //out put "1"

Résumé

Comparaison des performances

Dans l'opérateur logique && ||, si le premier opérande de && est faux, il ne sera plus pris en compte Pour le second opérande, false est renvoyé directement ; si le premier opérande de || est vrai, le deuxième opérande n'est pas pris en compte et true est renvoyé directement. Ce n'est pas le cas des opérateurs & et | Ils doivent toujours comparer deux opérandes pour obtenir le résultat, donc les performances de && et ||

Utilisation des fonctions

&& et || ne peuvent effectuer que des opérations logiques, tandis que & et | peuvent non seulement effectuer des "opérations logiques", mais également effectuer des opérations sur les bits

Opérations au niveau du bit

& et | sont des opérateurs au niveau du bit. La raison pour laquelle des « opérations logiques » peuvent être effectuées est que JS est un langage sans type et que chaque type de données peut être utilisé librement. . Déterminé par cette fonctionnalité de conversion, lors de l'utilisation de & et | pour effectuer des "opérations logiques", true est en fait converti en 1, false est converti en 0, puis des opérations bit par bit sont effectuées :

.

document.write(true & false); //JS,结果为0

Dans la phrase ci-dessus, l'exemple équivaut à l'opération logique convertie en l'opération binaire suivante et exécutée :


document.write(1 & 0); //JS,结果为0

C'est précisément parce que & et | sont des opérateurs au niveau du bit, ce qui est mentionné dans le premier point. Ils doivent toujours comparer deux opérandes pour obtenir le résultat, ce qui conduit à des performances inférieures à celles de && et ||.

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Quels sont les moyens de chiffrer les mots de passe dans nodejs

vue traite les données obtenues par storejs

nodejsExplication détaillée des étapes pour se connecter à la base de données mysql

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