ECMAScript Boolean-bewerker
- Vorige pagina Bitoperatoren
- Volgende pagina Vermenigvuldigingsoperatoren
Boolean-bewerker is erg belangrijk, omdat het programma taal mogelijk maakt om normaal te werken.
Er zijn drie soorten Boolean-bewerker: NOT, AND en OR.
ToBoolean-operatie
Voor we verschillende logische bewerkingssymbolen leren, laten we eerst de ToBoolean-operatie beschreven in de ECMAScript-262 v5-norm leren.
De abstracte operatie ToBoolean converteert zijn parameters volgens de regels in onderstaande tabel:
Parameter type | Resultaat |
---|---|
Undefined | false |
Null | false |
Boolean | Het resultaat is gelijk aan het ingebrachte parameter (zonder conversie) |
Number | Als het parameter +0, -0 of NaN is, resulteert dit in false; anders in true. |
String | Als het parameter een lege string is, resulteert dit in false; anders in true. |
Object | true |
Logische NOT-bewerker
In ECMAScript, the logical NOT operator is the same as the logical NOT operator in C and Java, both represented by the exclamation mark (!).
Unlike the logical OR and logical AND operators,The logical NOT operator always returns a Boolean value.
The behavior of the logical NOT operator is as follows:
- If the operand is an object, returns false
- If the operand is the number 0, returns true
- If the operand is any number other than 0, returns false
- If the operand is null, returns true
- If the operand is NaN, returns true
- If the operand is undefined, an error occurs
This operator is usually used to control loops:
var bFound = false; var i = 0; while (!bFound) { if (aValue[i] == vSearchValues) { bFound = true; } i++; } }
In this example, the Boolean variable (bFound) is used to record whether the search is successful. When the data item in the problem is found, bFound is set to true, and !bFound equals false, which means the program will exit the while loop.
When checking the Boolean value of an ECMAScript variable, you can also use the logical NOT operator. To do this, you need to use two NOT operators in a single line of code. The first NOT operator returns a Boolean value regardless of the operand type. The second NOT inverts the Boolean value, thus giving the actual Boolean value of the variable.
var bFalse = false; var sRed = "red"; var iZero = 0; var iThreeFourFive = 345; var oObject = new Object; document.write("bFalse's logical value is " + (!!bFalse)); document.write("sRed's logical value is " + (!!sRed)); document.write("iZero's logical value is " + (!!iZero)); document.write("iThreeFourFive's logical value is " + (!!iThreeFourFive)); document.write("oObject's logical value is " + (!!oObject));
Resultaat:
De logische waarde van bFalse is false De logische waarde van sRed is true De logische waarde van iZero is false De logische waarde van iThreeFourFive is true De logische waarde van oObject is true
Logische AND-betekenis
In ECMAScript wordt de logische AND-betekenis weergegeven met een dubbele en-teken (&&):
Bijvoorbeeld:
var bTrue = true; var bFalse = false; var bResult = bTrue && bFalse;
De waarheids tabel beschrijft het gedrag van de logische AND-betekenis:
Operand 1 | Operand 2 | Resultaat |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
De operands van de logische AND-vergelijking kunnen van elk type zijn, niet alleen Boolean-waarden.
Als een operand geen oorspronkelijke Boolean-waarde is, retourneert de logische AND-vergelijking niet noodzakelijkerwijs een Boolean-waarde:
- Retourneert het object als een operand een Boolean-waarde is en de andere een object.
- Retourneert de tweede object als beide operands objecten zijn.
- Retourneert null als een operand null is.
- Retourneert NaN als een operand NaN is.
- Als een operand undefined is, treedt er een fout op.
Net als de logische AND-vergelijking in Java, is de logische AND-vergelijking in ECMAScript een eenvoudige operatie, namelijk als de eerste operand de uitkomst bepaalt, wordt de tweede operand niet meer berekend. Voor de logische AND-vergelijking, als de eerste operand false is, kan de uitkomst nooit true zijn ongeacht de waarde van de tweede operand.
Overweeg het volgende voorbeeld:
var bTrue = true; var bResult = (bTrue && bUnknown); // Er ontstaat een fout alert(bResult); // Deze regel wordt niet uitgevoerd
Deze code zal een fout veroorzaken tijdens de logische AND-vergelijking omdat de variabele bUnknown undefined is. De waarde van de variabele bTrue is true omdat de logische AND-vergelijking verder berekend wordt met de variabele bUnknown. Dit veroorzaakt een fout omdat de waarde van bUnknown undefined is en niet kan worden gebruikt in een logische AND-vergelijking.
Als je deze voorbeeldcode aanpast door het eerste getal op false in te stellen, zal er geen fout optreden:
var bFalse = false; var bResult = (bFalse && bUnknown); alert(bResult); // "false" wordt weergegeven
In deze code zal het script de waarde van de logische AND-vergelijking retourneren, namelijk de string "false". Zelfs als de waarde van de variabele bUnknown undefined is, wordt deze niet berekend, omdat de waarde van het eerste operand false is.
Tip:Bij het gebruik van de logische AND-operator moet je onthouden dat het een eenvoudige berekening is.
Logische OR-operator
De logische OR-operator in ECMAScript is hetzelfde als in Java en wordt weergegeven met dubbele streepjes (||):
var bTrue = true; var bFalse = false; var bResult = bTrue || bFalse;
De volgende waarheidstabel beschrijft het gedrag van de logische OR-operator:
Operand 1 | Operand 2 | Resultaat |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
Net als de logische AND-operator, hoeft de logische OR-operatie niet altijd een Boolean-waarde te retourneren als een operand geen Boolean-waarde is:
- Als een operand een object is en alle operanden links van het object false zijn, wordt het object geretourneerd.
- Als beide operanden objecten zijn, wordt het eerste object geretourneerd.
- Als de laatste operand null is en alle andere operanden false zijn, wordt null geretourneerd.
- Als de laatste operand NaN is en alle andere operanden false zijn, wordt NaN geretourneerd.
- Als een operand undefined is, treedt er een fout op.
Net als de logische AND-operator is de logische OR-operatie een eenvoudige berekening. Voor de logische OR-operator wordt de tweede operand niet meer berekend als de eerste operand true is.
Bijvoorbeeld:
var bTrue = true; var bResult = (bTrue || bUnknown); alert(bResult); // Weergeeft "true"
Net als in het vorige voorbeeld is de variabele bUnknown niet gedefinieerd. Omdat de waarde van bTrue true is, wordt bUnknown niet berekend, dus wordt "true" weergegeven.
Als bTrue wordt veranderd in false, treedt er een fout op:
var bFalse = false; var bResult = (bFalse || bUnknown); // Er treedt een fout op alert(bResult); // Deze regel wordt niet uitgevoerd
- Vorige pagina Bitoperatoren
- Volgende pagina Vermenigvuldigingsoperatoren