ECMAScript Boolean operators
- Nakaraang pahina Operator ng pagsasama-samang bilog
- Susunod na pahina Operator ng pagkakatipon
Boolean operators are very important as they make the program language run smoothly.
There are three types of Boolean operators: NOT, AND, and OR.
ToBoolean operation
Before learning various logical operators, let's first understand the ToBoolean operation described in the ECMAScript-262 v5 specification.
The abstract operation ToBoolean converts its parameters according to the rules in the following table:
Parameter type | Bunga |
---|---|
Undefined | false |
Null | false |
Boolean | The result is equal to the input parameter (without conversion) |
Number | If the parameter is +0, -0, or NaN, the result is false; otherwise, it is true. |
String | If the parameter is an empty string, the result is false; otherwise, it is true. |
Object | true |
Logical NOT operator
Sa ECMAScript, ang logical NOT operator ay katulad ng logical NOT operator sa C at Java, na binibigyang ng simbolo na tanda ng exclamasyon (!).
Hindi katulad ng logical OR at logical AND operator,Ang logical NOT operator ay ibibigay lamang ang Boolean na halaga..
Ang pagiging kahulugan ng logical NOT operator ay tulad na:
- Kung ang argumento ay object, ibibigay ang false
- Kung ang argumento ay bilang 0, ibibigay ang true
- Kung ang argumento ay anumang bilang kung hindi 0, ibibigay ang false
- Kung ang argumento ay null, ibibigay ang true
- Kung ang argumento ay NaN, ibibigay ang true
- Kung ang argumento ay undefined, mangyayari ang error
Karaniwang ginagamit ang operator na ito upang kontrolin ang loop:
var bFound = false; var i = 0; while (!bFound) { kung (aValue[i] == vSearchValues) { bFound = true; } i++; } }
Sa katulad na ekemplo, ang Boolean variable (bFound) ay ginagamit upang talaan kung nagtagumpay ang paghahanap. Kapag natagpuan ang data item sa problema, ang bFound ay ibibigay ang halaga ng true, at !bFound ay magiging false, na nangangahulugan na ang paglulunsad ay lilisan ng while loop.
Kapag pinaghihinalaang ang Boolean na halaga ng ECMAScript na variable, maaaring gamitin din ang logical NOT operator. Para sa ganitong bagay, kailangan gamitin ang dalawang NOT operator sa isang linya ng code. Ang unang NOT operator ay ibibigay ang Boolean na halaga, at ang ikalawang NOT operator ay nagbibigay ng negation ng Boolean na halaga ng variable.
var bFalse = false; var sRed = "red"; var iZero = 0; var iThreeFourFive = 345; var oObject = new Object; document.write("bFalse 的逻辑值是 " + (!!bFalse)); document.write("sRed 的逻辑值是 " + (!!sRed)); document.write("iZero 的逻辑值是 " + (!!iZero)); document.write("iThreeFourFive 的逻辑值是 " + (!!iThreeFourFive)); document.write("oObject 的逻辑值是 " + (!!oObject));
Resulta:
Ang logic value ng bFalse ay false Ang logic value ng sRed ay true Ang logic value ng iZero ay false Ang logic value ng iThreeFourFive ay true Ang logic value ng oObject ay true
Ang operatoryo ng logic AND
Sa ECMAScript, ang operatoryo ng logic AND ay ginagamit ng dual ampersand (&&):
Halimbawa:
var bTrue = true; var bFalse = false; var bResult = bTrue && bFalse;
Ang tabing katotohanan ng logic AND na operasyon na ito ay naglalarawan ng pag-uugali ng operatoryo na AND:
Operator 1 | Operator 2 | Bunga |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
Ang operando ng logic AND na operasyon ay maaaring maging anumang uri ng type, hindi lamang ang Boolean value.
Kung ang anumang operando ay hindi orihinal na Boolean value, ang logic AND na operasyon ay hindi siguradong ibabalik ang Boolean value:
- Kung ang anumang operando ay object, at ang iba ay Boolean value, ibabalik ang object na iyon.
- Kung ang dalawang operando ay object, ibabalik ang ikalawang object.
- Kung ang anumang operando ay null, ibabalik ang null.
- Kung ang anumang operando ay NaN, ibabalik ang NaN.
- Kung ang anumang numero ng pagkilos ay undefined, magkakaroon ng error.
Katulad ng logic AND na operasyon sa Java, ang logic AND na operasyon sa ECMAScript ay isang madaling operasyon, na kung ang unang operando ay nagpasya sa resulta, ay hindi na magkakalulutas ang ikalawang operando. Para sa logic AND na operasyon, kung ang unang operando ay false, ang resulta ay hindi puwedeng maging true kahit anong halaga ang ikalawang operando.
Isasaalang-alang ang sumusunod na halimbawa:
var bTrue = true; var bResult = (bTrue && bUnknown); //magiging error alert(bResult); //ang linya na ito ay hindi nasasagawa
Ang kodigo na ito ay magbibigay ng error sa paggamit ng logic AND na operasyon, dahil ang variable na bUnknown ay undefined. Ang halaga ng variable na bTrue ay true, dahil ang logic AND na operasyon ay magpatuloy sa pagkakalulutas ng variable na bUnknown. Ganoon ang magiging error, dahil ang halaga ng bUnknown ay undefined, hindi ito puwedeng gamitin sa logic AND na operasyon.
Kung baguhin itong halimbawa, ilagay ang unang numero sa false, ay hindi magkakaroon ng error:
var bFalse = false; var bResult = (bFalse && bUnknown); alert(bResult); //maglalabas ng "false"
Sa kasabing kodigo, ang script ay maglalabas ng halaga ng logic AND na operasyon, na ang string "false". Kahit ang halaga ng variable na bUnknown ay undefined, hindi ito ay magkakalulutas, dahil ang halaga ng unang operando ay false.
Mga tagubilin:Kapag ginagamit ang logical AND operator, dapat alalahanin ang kanyang katangian ng madaling pagkilos.
Logical OR operator
Ang logical OR operator sa ECMAScript ay katulad ng sa Java, lahat ay inilalarawan ng dalawang patong (||):
var bTrue = true; var bFalse = false; var bResult = bTrue || bFalse;
Ang sumusunod na truth table ay naglalarawan ng pag-uugali ng logical OR operator:
Operator 1 | Operator 2 | Bunga |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
Katulad ng logical AND operator, kung ang anumang numero ng pagkilos ay hindi Boolean value, ang logical OR operator ay hindi nasisiguro na ibabalik ang Boolean value:
- Kung ang anumang numero ng pagkilos ay object, at ang lahat ng numero ng pagkilos sa kanyang kaliwa ay false, ibabalik ang object na iyon.
- Kung ang dalawang numero ng pagkilos ay parehong object, ibabalik ang unang object.
- Kung ang huling numero ng pagkilos ay null, at ang ibang numero ng pagkilos ay lahat ay false, ibabalik ang null.
- Kung ang huling numero ng pagkilos ay NaN, at ang ibang numero ng pagkilos ay lahat ay false, ibabalik ang NaN.
- Kung ang anumang numero ng pagkilos ay undefined, magkakaroon ng error.
Katulad ng logical AND operator, ang logical OR operator ay madaling pagkilos. Para sa logical OR operator, kung ang unang numero ng pagkilos ay true, hindi na ito magtutuos sa ikalawang numero ng pagkilos.
Halimbawa:
var bTrue = true; var bResult = (bTrue || bUnknown); alert(bResult); //Output "true"
Kasama ng nakaraang halimbawa, ang variable na bUnknown ay hindi tinukoy. Gayunpaman, dahil ang halaga ng variable na bTrue ay true, ang bUnknown ay hindi nasusuri, kaya ang output ay "true".
Kung ibahin ang bTrue sa false, magkakaroon ng error:
var bFalse = false; var bResult = (bFalse || bUnknown); //Mayroon error alert(bResult); //Hindi ito gagawin
- Nakaraang pahina Operator ng pagsasama-samang bilog
- Susunod na pahina Operator ng pagkakatipon