ECMAScript Boolean ÔËËã·û

Boolean ÔËËã·û·Ç³£ÖØÒª£¬ËüʹµÃ³ÌÐòÓïÑÔµÃÒÔÕý³£ÔËÐС£

Boolean ÔËËã·ûÓÐÈýÖÖ£ºNOT¡¢AND ºÍ OR¡£

ToBoolean ²Ù×÷

ÔÚѧϰ¸÷ÖÖÂß¼­ÔËËã·û֮ǰ£¬ÈÃÎÒÃÇÏÈÁ˽âһϠECMAScript-262 v5 ¹æ·¶ÖÐÃèÊöµÄ ToBoolean ²Ù×÷¡£

³éÏó²Ù×÷ ToBoolean ½«Æä²ÎÊý°´ÕÕϱíÖеĹæÔòת»»ÎªÂß¼­Öµ£º

²ÎÊýÀàÐÍ ½á¹û
Undefined false
Null false
Boolean ½á¹ûµÈÓÚÊäÈëµÄ²ÎÊý£¨²»×ª»»£©
Number Èç¹û²ÎÊýΪ +0, -0 »ò NaN£¬Ôò½á¹ûΪ false£»·ñÔòΪ true¡£
String Èç¹û²ÎÊýΪ¿Õ×Ö·û´®£¬Ôò½á¹ûΪ false£»·ñÔòΪ true¡£
Object true

Âß¼­ NOT ÔËËã·û

ÔÚ ECMAScript ÖУ¬Âß¼­ NOT ÔËËã·ûÓë C ºÍ Java ÖеÄÂß¼­ NOT ÔËËã·ûÏàͬ£¬¶¼ÓɸÐ̾ºÅ£¨!£©±íʾ¡£

ÓëÂß¼­ OR ºÍÂß¼­ AND ÔËËã·û²»Í¬µÄÊÇ£¬Âß¼­ NOT ÔËËã·û·µ»ØµÄÒ»¶¨ÊÇ Boolean Öµ¡£

Âß¼­ NOT ÔËËã·ûµÄÐÐΪÈçÏ£º

  • Èç¹ûÔËËãÊýÊǶÔÏ󣬷µ»Ø false
  • Èç¹ûÔËËãÊýÊÇÊý×Ö 0£¬·µ»Ø true
  • Èç¹ûÔËËãÊýÊÇ 0 ÒÔÍâµÄÈκÎÊý×Ö£¬·µ»Ø false
  • Èç¹ûÔËËãÊýÊÇ null£¬·µ»Ø true
  • Èç¹ûÔËËãÊýÊÇ NaN£¬·µ»Ø true
  • Èç¹ûÔËËãÊýÊÇ undefined£¬·¢Éú´íÎó

ͨ³££¬¸ÃÔËËã·ûÓÃÓÚ¿ØÖÆÑ­»·£º

var bFound = false;
var i = 0;

while (!bFound) {
  if (aValue[i] == vSearchValues) {
    bFound = true;
  } else {
    i++;
  }
}

ÔÚÕâ¸öÀý×ÓÖУ¬Boolean ±äÁ¿£¨bFound£©ÓÃÓڼǼ¼ìË÷ÊÇ·ñ³É¹¦¡£ÕÒµ½ÎÊÌâÖеÄÊý¾ÝÏîʱ£¬bFound ½«±»ÉèÖÃΪ true£¬!bFound ½«µÈÓÚ false£¬Òâζ×ÅÔËÐн«Ìø³ö while Ñ­»·¡£

ÅÐ¶Ï ECMAScript ±äÁ¿µÄ Boolean ֵʱ£¬Ò²¿ÉÒÔʹÓÃÂß¼­ NOT ÔËËã·û¡£ÕâÑù×öÐèÒªÔÚÒ»ÐдúÂëÖÐʹÓÃÁ½¸ö NOT ÔËËã·û¡£ÎÞÂÛÔËËãÊýÊÇʲôÀàÐÍ£¬µÚÒ»¸ö NOT ÔËËã·û·µ»Ø Boolean Öµ¡£µÚ¶þ¸ö NOT ½«¶Ô¸Ã Boolean ÖµÇ󸺣¬´Ó¶ø¸ø³ö±äÁ¿ÕæÕýµÄ Boolean Öµ¡£

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));

½á¹û£º

bFalse µÄÂß¼­ÖµÊÇ false
sRed µÄÂß¼­ÖµÊÇ true
iZero µÄÂß¼­ÖµÊÇ false
iThreeFourFive µÄÂß¼­ÖµÊÇ true
oObject µÄÂß¼­ÖµÊÇ true 

Âß¼­ AND ÔËËã·û

ÔÚ ECMAScript ÖУ¬Âß¼­ AND ÔËËã·ûÓÃË«ºÍºÅ£¨&&£©±íʾ£º

ÀýÈ磺

var bTrue = true;
var bFalse = false;
var bResult = bTrue && bFalse;

ÏÂÃæµÄÕæÖµ±íÃèÊöÁËÂß¼­ AND ÔËËã·ûµÄÐÐΪ£º

ÔËËãÊý 1 ÔËËãÊý 2 ½á¹û
true true true
true false false
false true false
false false false

Âß¼­ AND ÔËËãµÄÔËËãÊý¿ÉÒÔÊÇÈκÎÀàÐ͵쬲»Ö¹ÊÇ Boolean Öµ¡£

Èç¹ûij¸öÔËËãÊý²»ÊÇԭʼµÄ Boolean ÐÍÖµ£¬Âß¼­ AND ÔËËã²¢²»Ò»¶¨·µ»Ø Boolean Öµ£º

  • Èç¹ûÒ»¸öÔËËãÊýÊǶÔÏó£¬ÁíÒ»¸öÊÇ Boolean Öµ£¬·µ»Ø¸Ã¶ÔÏó¡£
  • Èç¹ûÁ½¸öÔËËãÊý¶¼ÊǶÔÏ󣬷µ»ØµÚ¶þ¸ö¶ÔÏó¡£
  • Èç¹ûij¸öÔËËãÊýÊÇ null£¬·µ»Ø null¡£
  • Èç¹ûij¸öÔËËãÊýÊÇ NaN£¬·µ»Ø NaN¡£
  • Èç¹ûij¸öÔËËãÊýÊÇ undefined£¬·¢Éú´íÎó¡£

Óë Java ÖеÄÂß¼­ AND ÔËËãÏàËÆ£¬ECMAScript ÖеÄÂß¼­ AND ÔËËãÒ²ÊǼò±ãÔËË㣬¼´Èç¹ûµÚÒ»¸öÔËËãÊý¾ö¶¨Á˽á¹û£¬¾Í²»ÔÙ¼ÆËãµÚ¶þ¸öÔËËãÊý¡£¶ÔÓÚÂß¼­ AND ÔËËãÀ´Ëµ£¬Èç¹ûµÚÒ»¸öÔËËãÊýÊÇ false£¬ÄÇôÎÞÂÛµÚ¶þ¸öÔËËãÊýµÄÖµÊÇʲô£¬½á¹û¶¼²»¿ÉÄܵÈÓÚ true¡£

¿¼ÂÇÏÂÃæµÄÀý×Ó£º

var bTrue = true;
var bResult = (bTrue && bUnknown);	//·¢Éú´íÎó
alert(bResult);			//ÕâÒ»Ðв»»áÖ´ÐÐ

Õâ¶Î´úÂëÔÚ½øÐÐÂß¼­ AND ÔËËãʱ½«Òý·¢´íÎó£¬ÒòΪ±äÁ¿ bUnknown ÊÇ䶨ÒåµÄ¡£±äÁ¿ bTrue µÄֵΪ true£¬ÒòΪÂß¼­ AND ÔËË㽫¼ÌÐø¼ÆËã±äÁ¿ bUnknown¡£ÕâÑù×ö¾Í»áÒý·¢´íÎó£¬ÒòΪ bUnknown µÄÖµÊÇ undefined£¬²»ÄÜÓÃÓÚÂß¼­ AND ÔËËã¡£

Èç¹ûÐÞ¸ÄÕâ¸öÀý×Ó£¬°ÑµÚÒ»¸öÊýÉèΪ false£¬ÄÇô¾Í²»»á·¢Éú´íÎó£º

var bFalse = false;
var bResult = (bFalse && bUnknown);
alert(bResult);			//Êä³ö "false"

ÔÚÕâ¶Î´úÂëÖУ¬½Å±¾½«Êä³öÂß¼­ AND ÔËËã·µ»ØµÄÖµ£¬¼´×Ö·û´® "false"¡£¼´Ê¹±äÁ¿ bUnknown µÄֵΪ undefined£¬ËüÒ²²»»á±»¼ÆË㣬ÒòΪµÚÒ»¸öÔËËãÊýµÄÖµÊÇ false¡£

Ìáʾ£ºÔÚʹÓÃÂß¼­ AND ÔËËã·ûʱ£¬±ØÐë¼ÇסËüµÄÕâÖÖ¼ò±ã¼ÆËãÌØÐÔ¡£

Âß¼­ OR ÔËËã·û

ECMAScript ÖеÄÂß¼­ OR ÔËËã·ûÓë Java ÖеÄÏàͬ£¬¶¼ÓÉË«ÊúÏߣ¨||£©±íʾ£º

var bTrue = true;
var bFalse = false;
var bResult = bTrue || bFalse;

ÏÂÃæµÄÕæÖµ±íÃèÊöÁËÂß¼­ OR ÔËËã·ûµÄÐÐΪ£º

ÔËËãÊý 1 ÔËËãÊý 2 ½á¹û
true true true
true false true
false true true
false false false

ÓëÂß¼­ AND ÔËËã·ûÏàËÆ£¬Èç¹ûij¸öÔËËãÊý²»ÊÇ Boolean Öµ£¬Âß¼­ OR ÔËËã²¢²»Ò»¶¨·µ»Ø Boolean Öµ£º

  • Èç¹ûÒ»¸öÔËËãÊýÊǶÔÏ󣬲¢ÇҸöÔÏó×ó±ßµÄÔËËãÊýÖµ¾ùΪ false£¬Ôò·µ»Ø¸Ã¶ÔÏó¡£
  • Èç¹ûÁ½¸öÔËËãÊý¶¼ÊǶÔÏ󣬷µ»ØµÚÒ»¸ö¶ÔÏó¡£
  • Èç¹û×îºóÒ»¸öÔËËãÊýÊÇ null£¬²¢ÇÒÆäËûÔËËãÊýÖµ¾ùΪ false£¬Ôò·µ»Ø null¡£
  • Èç¹û×îºóÒ»¸öÔËËãÊýÊÇ NaN£¬²¢ÇÒÆäËûÔËËãÊýÖµ¾ùΪ false£¬Ôò·µ»Ø NaN¡£
  • Èç¹ûij¸öÔËËãÊýÊÇ undefined£¬·¢Éú´íÎó¡£

ÓëÂß¼­ AND ÔËËã·ûÒ»Ñù£¬Âß¼­ OR ÔËËãÒ²ÊǼò±ãÔËËã¡£¶ÔÓÚÂß¼­ OR ÔËËã·ûÀ´Ëµ£¬Èç¹ûµÚÒ»¸öÔËËãÊýֵΪ true£¬¾Í²»ÔÙ¼ÆËãµÚ¶þ¸öÔËËãÊý¡£

ÀýÈ磺

var bTrue = true;
var bResult = (bTrue || bUnknown);
alert(bResult);			//Êä³ö "true"

ÓëÇ°ÃæµÄÀý×ÓÏàͬ£¬±äÁ¿ bUnknown ÊÇ䶨ÒåµÄ¡£²»¹ý£¬ÓÉÓÚ±äÁ¿ bTrue µÄֵΪ true£¬bUnknown ²»»á±»¼ÆË㣬Òò´ËÊä³öµÄÊÇ "true"¡£

Èç¹û°Ñ bTrue ¸ÄΪ false£¬½«·¢Éú´íÎó£º

var bFalse = false;
var bResult = (bFalse || bUnknown);	//·¢Éú´íÎó
alert(bResult);			//²»»áÖ´ÐÐÕâÒ»ÐÐ
VUE