Boolean
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
è«çå¤ (Boolean) ã¯ã 2 ã¤ã®å¤ã true ã¾ã㯠false ã®ã©ã¡ããã§ããããã¯è«çå½é¡ã®çå½å¤ã表ãã¾ãã
解説
è«çå¤ã¯ãé常ãé¢ä¿æ¼ç®åãç夿¼ç®åã[è«ç NOT (!)] ã«ãã£ã¦çæããã¾ããã¾ããæ¡ä»¶ã表ã颿°ãä¾ãã°Array.isArray() ã«ãã£ã¦ãçæããã¾ãã ãªãããã¤ããªã¼è«çæ¼ç®åãä¾ãã° && ã || ãªã©ã¯ããªãã©ã³ãã®å¤ãè¿ãã¾ãããããã®å¤ã¯è«çå¤ã§ããå ´åãããã°ãããã§ãªãå ´åãããã¾ãã
è«çå¤ã¯ä¸è¬ã«æ¡ä»¶åå²ã®æ¤æ»ãä¾ãã° if...else ã while æã®æ¡ä»¶ãæ¡ä»¶æ¼ç®å (? :)ã Array.prototype.filter() ã®è¿°èªã®è¿å¤ãªã©ã«ä½¿ç¨ããã¾ãã
JavaScript ã§ã¯ãè«çå¤ã¸ã®æç¤ºçãªå¤æã¯ã»ã¨ãã©å¿
è¦ããã¾ããã JavaScript ã¯è«çå¤ã®ã³ã³ããã¹ãã«ããã¦èªåçã«å¤æãè¡ããããå¤ãçå¤ã§ãããã©ããã«åºã¥ãã¦ãä»»æã®å¤ãè«çå¤ã¨ãã¦ä½¿ç¨ãããã¨ãã§ãã¾ããã¾ããèªåã®ã³ã¼ãã§ã¯ãif (condition) ã if (!condition) ã if (condition === true) ã if (condition === false) ã®ä»£ããã«ä½¿ç¨ããããæ¨å¥¨ãã¾ããããã«ããããã®è¦ç´ã®å©ç¹ãæ´»ãããã¨ãã§ãã¾ãããã ããæ¡ä»¶ã表ãå¤ã常ã«è«çå¤ã§ãããã¨ã確èªãããã¨ã§ãã³ã¼ãã®æå³ãæç¢ºã«ãããã¨ãã§ãã¾ãã
// è¯ãä¾:
// ããã¯å¸¸ã«è«çå¤ãè¿ã
const isObject = (obj) => !!obj && typeof obj === "object";
// ãããããä¾:
const isObject = (obj) => Boolean(obj) && typeof obj === "object";
// ãããããä¾:
const isObject = (obj) => obj !== null && typeof obj === "object";
// æªãä¾:
// ããã¯å½å¤ã§ãã£ã¦ã false ã¨ã¯çãããªãå¤ãè¿ãããå¯è½æ§ããã
const isObject = (obj) => obj && typeof obj === "object";
è«çå¤ããªããã£ã㨠Boolean ãªãã¸ã§ã¯ã
è«çå¤ã§ãªãå¤ãè«çå¤ã«å¤æããã«ã¯ãBoolean ã颿°ã¨ãã¦ä½¿ç¨ããããäºéå¦å®æ¼ç®åã使ç¨ãã¾ãã Boolean() ã³ã³ã¹ãã©ã¯ã¿ã¼ã new ã¨ä¸ç·ã«ä½¿ç¨ããªãã§ãã ããã
const good = Boolean(expression);
const good2 = !!expression;
const bad = new Boolean(expression); // ããã使ç¨ããªã
ããã¯ããã¹ã¦ã®ãªãã¸ã§ã¯ããï¼Boolean ãªãã¸ã§ã¯ãã§ false ãã©ãããã¦ãããã®ã§ãã£ã¦ãï¼çå¤ã§ãããæ¡ä»¶æãªã©ã®å ´é¢ã§ã¯ true ã¨è©ä¾¡ãããããã§ããï¼è©³ç´°ã¯ä¸è¨ã®è«çåã¸ã®å¤æã®ç¯ãåç
§ãï¼
if (new Boolean(true)) {
console.log("ãã®ãã°ã¯è¡¨ç¤ºããã¾ã");
}
if (new Boolean(false)) {
console.log("ãã®ãã°ã表示ããã¾ã");
}
const myFalse = new Boolean(false); // myFalse 㯠Boolean ãªãã¸ã§ã¯ãï¼ããªããã£ãå¤ false ã§ã¯ãªãï¼
const g = Boolean(myFalse); // g 㯠true
const myString = new String("Hello"); // myString 㯠String ãªãã¸ã§ã¯ã
const s = Boolean(myString); // s 㯠true
è¦å:
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¨ã㦠Boolean ã使ããã¨ã¯æ»
å¤ã«ããã¾ããã
è«çåã¸ã®å¤æ
è«çå¤ãæå¾ ããå¤ãã®çµã¿è¾¼ã¿æ¼ç®ã¯ãã¾ã弿°ãè«çå¤ã«å夿ãã¾ãããã®å¦çã¯æ¬¡ã®ããã«è¦ç´ããã¾ãã
- è«çå¤ã¯ãã®ã¾ã¾è¿ããã¾ãã
undefinedã¯falseã«å¤æããã¾ããnullã¯falseã«å¤æããã¾ãã0,-0,NaNã¯falseã«ããã以å¤ã®æ°å¤ã¯trueã«å¤æããã¾ãã0nã¯falseã«ããã®ä»ã®BigIntã¯trueã«å¤æããã¾ããSymbolã¯trueã«ãªãã¾ãã- ãã¹ã¦ã®ãªãã¸ã§ã¯ãã¯
trueã«ãªãã¾ãã
ã¡ã¢:
å¤ãåä½ã«ããã document.all ã¯ãªãã¸ã§ã¯ãã§ããã«ãããããããè«çå¤ã«å¤æããã㨠false ã«ãªãã¾ãããã®ããããã£ã¯å¤ãæ¨æºå¤ã§ããããã使ç¨ããªãã§ãã ããã
ã¡ã¢: æååã¸ã®å¤æãæ°å¤ã¸ã®å¤æãªã©ã®ä»ã®å夿ã¨ã¯ç°ãªããè«çåã¸ã®å¤æã¯ãªãã¸ã§ã¯ãããããªããã£ãã«å¤æãããã¨ããããã§ã¯ããã¾ããã
è¨ãæããã°ã false ã«å¼·å¶ãããå¤ã¯ã»ãã®ä¸æ¡ãã§ããããã¯å½å¤ (falsy) ã¨å¼ã°ããå¤ã§ãããã以å¤ã®å¤ã¯çå¤ (truthy) ã¨å¼ã°ãã¾ããå¤ãçå¤ã§ãããã©ããã¯ãè«çæ¼ç®åãæ¡ä»¶æã¨å
±ã«ä½¿ãããã¨ãããããã¯ããããè«çåã®æèã§ä½¿ãããã¨ãã«éè¦ã§ãã
JavaScript ã§å夿ã¨åã广ãå¾ãã«ã¯ã 2 ã¤ã®æ¹æ³ãããã¾ãã
- äºéå¦å®:
!!xã¯xã 2 åå¦å®ããä¸è¨ã¨åãã¢ã«ã´ãªãºã ã§xãè«çå¤ã«å¤æãã¾ãã Boolean()颿°ãã¤ã¾ãBoolean(x)ã¯ä¸è¨ã¨åãã¢ã«ã´ãªãºã ãç¨ãã¦xãè«çå¤ã«å¤æãã¾ãã
ãªããçå¤ã§ãããã©ããã¯ã true ã¾ã㯠false ã¨ç·©ãç価æ§ããããã©ããã¨åãã§ã¯ããã¾ããã
if ([]) {
console.log("[] ã¯çå¤ã§ã");
}
if ([] == false) {
console.log("[] == false");
}
// [] ã¯çå¤ã§ã
// [] == false
[] ã¯çå¤ã§ãããfalse ã¨ç·©ãç価ã§ãããã¹ã¦ã®ãªãã¸ã§ã¯ãã¯çå¤ã§ããããã[] ãçå¤ã§ããããããããªããã£ãã§ãã false ã¨æ¯è¼ããå ´åã [] ã Array.prototype.toString() ã«ãã£ã¦ "" ã¨ããããªããã£ãã«å¤æããã¾ããæååã¨è«çå¤ãæ¯è¼ããã¨ãã©ã¡ããæ°å¤ã«å¤æãããã©ã¡ãã 0 ã«ãªãã®ã§ã[] == false 㯠true ã¨ãªãã¾ããä¸è¬ã«ãå½å¤ã§ãããã¨ã¨ == false ã¯æ¬¡ã®ãããªã±ã¼ã¹ã§ç°ãªãã¾ãã
NaN,undefined,nullã¯å½å¤ã§ãããfalseã¨ç·©ãç価ã§ã¯ããã¾ããã"0"ï¼ããã³""ã§ã¯ãªãã 0 ã«å夿ããã ä»ã®æååãªãã©ã«ï¼ã¯çå¤ã§ãããfalseã¨ç·©ãç価ã§ãã- ãªãã¸ã§ã¯ãã¯å¸¸ã«çå¤ã§ããããã®ããªããã£ã表ç¾ã¯
falseã¨ç·©ãç価ã«ãªãå¯è½æ§ãããã¾ãã
çå¤ã®å¤ã true ã¨ç·©ãç価ã«ãªãå¯è½æ§ã¯ããã«ä½ãã§ãããã¹ã¦ã®å¤ã¯çå¤ãå½å¤ã®ã©ã¡ããã§ãããã»ã¨ãã©ã®å¤ã¯ true 㨠false ã®ã©ã¡ãã¨ãç·©ãç価ã§ã¯ããã¾ããã
ã³ã³ã¹ãã©ã¯ã¿ã¼
Boolean()-
Booleanãªãã¸ã§ã¯ããçæãã¾ãã颿°ã¨ãã¦å¼ã³åºãããå ´åãè«çåã®ããªããã£ãå¤ãè¿ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
ãããã®ããããã£ã¯ Boolean.prototype ã«å®ç¾©ããã¦ããããã¹ã¦ã® Boolean ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¾ãã
Boolean.prototype.constructor-
ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ããçæããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã
Booleanã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯Booleanã³ã³ã¹ãã©ã¯ã¿ã¼ã§ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
Boolean.prototype.toString()-
ãã®ãªãã¸ã§ã¯ãã®å¤ã«å¿ãã¦ãæååã§
trueã¾ãã¯falseã®ã©ã¡ãããè¿ãã¾ããObject.prototype.toString()ã¡ã½ããã䏿¸ããã¾ãã Boolean.prototype.valueOf()-
Booleanãªãã¸ã§ã¯ãã®ããªããã£ãå¤ãè¿ãã¾ããObject.prototype.valueOf()ã¡ã½ããã䏿¸ããã¾ãã
ä¾
>false å¤ã®çæ
const bNoParam = Boolean();
const bZero = Boolean(0);
const bNull = Boolean(null);
const bEmptyString = Boolean("");
const bfalse = Boolean(false);
true å¤ã®çæ
const btrue = Boolean(true);
const btrueString = Boolean("true");
const bfalseString = Boolean("false");
const bSuLin = Boolean("Su Lin");
const bArrayProto = Boolean([]);
const bObjProto = Boolean({});
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-boolean-objects> |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- Boolean
- è«çå¤ããªããã£ã
- ãã¼ãªã¢ã³åï¼ã¦ã£ãããã£ã¢ï¼