Boolean
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Boolean 对象æ¯ä¸ä¸ªå¸å°å¼ç对象å
è£
å¨ã
æè¿°
妿éè¦ï¼ä½ä¸ºç¬¬ä¸ä¸ªåæ°ä¼ éçå¼å°è½¬æ¢ä¸ºå¸å°å¼ã妿çç¥è¯¥åæ°æåæ°å¼ä¸º 0ã-0ãnullãfalseãNaNãundefinedï¼æç©ºå符串ï¼""ï¼ï¼å该对象å
·æçåå§å¼ä¸º falseãææå
¶ä»å¼ï¼å
æ¬ä»»ä½å¯¹è±¡ï¼ç©ºæ°ç»ï¼[]ï¼æå符串 "false"ï¼é½ä¼å建ä¸ä¸ªåå§å¼ä¸º true ç对象ã
注æä¸è¦å°åºæ¬ç±»åä¸çå¸å°å¼ true å false ä¸å¼ä¸º true å false ç Boolean å¯¹è±¡å¼æ··äºã
å
¶å¼ä¸æ¯ undefined æ null çä»»ä½å¯¹è±¡ï¼å
æ¬å
¶å¼ä¸º false çå¸å°å¯¹è±¡ï¼å¨ä¼ éç»æ¡ä»¶è¯å¥æ¶é½å°è®¡ç®ä¸º trueãä¾å¦ï¼ä»¥ä¸ if è¯å¥ä¸çæ¡ä»¶è¯ä¼°ä¸º trueï¼
const x = new Boolean(false);
if (x) {
// è¿éç代ç ä¼è¢«æ§è¡
}
åºæ¬ç±»åçå¸å°å¼ä¸åæ¤è§åå½±åãä¾å¦ä¸é¢ç if è¯å¥çæ¡ä»¶ä¸ºåï¼
const x = false;
if (x) {
// è¿éç代ç ä¸ä¼æ§è¡
}
ä¸è¦ç¨å建 Boolean å¯¹è±¡çæ¹å¼å°ä¸ä¸ªéå¸å°å¼è½¬åæå¸å°å¼ï¼ç´æ¥å° Boolean å½å转æ¢å½æ°æ¥ä½¿ç¨å³å¯ï¼æè
使ç¨åééï¼!!ï¼è¿ç®ç¬¦ï¼
const x = Boolean(expression); // use this...
const x = !!expression; // ...or this
const x = new Boolean(expression); // don't use this!
对äºä»»ä½å¯¹è±¡ï¼å³ä½¿æ¯å¼ä¸º false ç Boolean 对象ï¼å½å°å
¶ä¼ ç» Boolean 彿°æ¶ï¼çæç Boolean 对象çå¼é½æ¯ trueã
const myFalse = new Boolean(false); // initial value of false
const g = Boolean(myFalse); // initial value of true
const myString = new String("Hello"); // string object
const s = Boolean(myString); // initial value of true
æåï¼ä¸è¦å¨åºè¯¥ä½¿ç¨åºæ¬ç±»åå¸å°å¼çå°æ¹ä½¿ç¨ Boolean 对象ã
夿³¨ï¼å½å°éæ å屿§ document.all ç¨ä½æ¤æé 彿°çåæ°æ¶ï¼ç»ææ¯å¼ä¸º false çå¸å°å¯¹è±¡ãæ¤å±æ§æ¯æ§çãéæ åç屿§ï¼ä¸åºä½¿ç¨ã
å½ä½¿ç¨éä¸¥æ ¼ç¸çï¼==ï¼æ¥æ¯è¾ä¸ä¸ªå¯¹è±¡åå¸å°åå§å¼æ¶ï¼æéè¦çæ¯éè¦å¼æç½æç»æ¯è¾çæ¯ä»ä¹ã请çä¸ä¸ç示ä¾ï¼
if ([]) {
console.log("[] is truthy"); // logs "[] is truthy"
}
if ([] == false) {
console.log("[] == false"); // logs "[] == false"
}
[] æ¯çå¼è [] == false ä¹åæ¶æç«çåå æ¯ï¼éä¸¥æ ¼æ¯è¾ [] == false ä¼å° [] çåå§å¼å false è¿è¡æ¯è¾ãèè·å [] çåå§å¼æ¶ï¼JavaScript 弿ä¼é¦å
è°ç¨ [].toString()ãå
¶ç»æä¸º ""ï¼ä¹æ¯æç»å false ä¸èµ·æ¯è¾çå¼ãæ¢å¥è¯è¯´ï¼[] == false çä»·äº "" == falseï¼è "" æ¯åå¼ââè¿ä¹è§£éäºä¸ºä»ä¹ä¼å¾å°è¿ä¸ç»æã
æé 彿°
Boolean()-
å建ä¸ä¸ªæ°ç
Boolean对象ã
å®ä¾æ¹æ³
Boolean.prototype.toString()-
æ ¹æ®å¯¹è±¡çå¼è¿åå符串
trueæfalseãè¦çäºObject.prototype.toString()æ¹æ³ã Boolean.prototype.valueOf()-
è¿å
Boolean对象çåå§å¼ãè¦çäºObject.prototype.valueOf()æ¹æ³ã
示ä¾
>以åå§å¼ false å建 Boolean 对象
const bNoParam = new Boolean();
const bZero = new Boolean(0);
const bNull = new Boolean(null);
const bEmptyString = new Boolean("");
const bfalse = new Boolean(false);
以åå§å¼ true å建 Boolean 对象
const btrue = new Boolean(true);
const btrueString = new Boolean("true");
const bfalseString = new Boolean("false");
const bSuLin = new Boolean("Su Lin");
const bArrayProto = new Boolean([]);
const bObjProto = new Boolean({});
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-boolean-objects> |