è«çå¦å®æ¼ç®å (!)
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æ.
è«çå¦å®æ¼ç®å (!) ï¼è«çå転ãå¦å®ï¼ã¯ãçå¤ãåãã¨å½å¤ã«ãªãããã®éãåæ§ã§ããããã¯é常è«çå (ãã¼ã«å) ã®å¤ã«ä½¿ç¨ããã¾ããè«çå以å¤ã®å¤ã«ä½¿ç¨ããå ´åãåä¸ã®ãªãã©ã³ãã true ã«å¤æã§ããå ´å㯠false ãè¿ãããã以å¤ã¯ true ãè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const a = 3;
const b = -2;
console.log(!(a > 0 || b > 0));
// äºæ³ãããçµæ: false
æ§æ
!x
解説
åä¸ã®ãªãã©ã³ãã true ã«å¤æã§ããå ´å㯠false ãè¿ãããã以å¤ã¯ true ãè¿ãã¾ãã
ããå¤ã true ã«å¤æã§ããå ´åããã®å¤ã¯çå¤ (truthy) ã¨å¼ã°ãã¾ããããå¤ã false ã«å¤æã§ããå ´åããã®å¤ã¯å½å¤ (falsy) ã¨å¼ã°ãã¾ãã
false ã«å¤æãããã¨ãã§ããå¼ã®ä¾ã示ãã¾ãã
nullNaN0- 空æåå (
""ã¾ãã¯''ã¾ãã¯``) undefined
! æ¼ç®åã¯è«çå¤ä»¥å¤ã®ãªãã©ã³ãã«å¯¾ãã¦ä½¿ç¨ãããã¨ãã§ãã¾ãããè¿å¤ã常ã«è«çåããªããã£ãã«å¤æãããã¨ãå¯è½ã§ãããããè«çæ¼ç®åã¨è¦ãªããã¨ãã§ãã¾ããè¿å¤ (ã¾ãã¯ä¸è¬çãªå¼) ã対å¿ããè«çå¤ã«æç¤ºçã«å¤æããã«ã¯ãäºéã®å¦å®æ¼ç®å (!!) ã¾ã㯠Boolean ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ç¨ãã¦ãã ããã
ä¾
>å¦å®ã®ä½¿ç¨
以ä¸ã®ã³ã¼ã㯠! ï¼è«çå¦å®ï¼æ¼ç®åã®ä¾ã示ãã¦ãã¾ãã
!true; // !t 㯠false ãè¿ã
!false; // !f 㯠true ãè¿ã
!""; // !f 㯠true ãè¿ã
!"Cat"; // !t 㯠false ãè¿ã
äºéå¦å® (!!)
è¤æ°ã®å¦å®æ¼ç®åãé£ç¶ãã¦ä½¿ç¨ãããã¨ã§ãæç¤ºçã«ããããå¤ã対å¿ããè«çåããªããã£ãã«å¤æãããã¨ãã§ãã¾ãã夿ã¯å¤ã®ãç夿§ãã¾ãã¯ãå½å¤æ§ãã«åºã¥ãã¦è¡ããã¾ãï¼truthy ããã³ falsy ãåç §ï¼ã
åãå¤æã¯ Boolean() 颿°ãéãã¦è¡ããã¨ãã§ãã¾ãã
!!true; // !!truthy 㯠true ãè¿ã
!!{}; // !!truthy 㯠true: ãããããªãã¸ã§ã¯ãã¯çå¤ã«ãªãã¾ãâ¦
!!new Boolean(false); // ⦠.valueOf() ã false ã® Boolean ãªãã¸ã§ã¯ãã§ãã£ã¦ã
!!false; // !!falsy 㯠false ãè¿ã
!!""; // !!falsy 㯠false ãè¿ã
!!Boolean(false); // !!falsy 㯠false ãè¿ã
å¦å®å士ã®å¤æ
以ä¸ã®æä½ãè«çå¤ã§è¡ã£ãå ´åã
!!bCondition
常ã«ä»¥ä¸ã®ãã®ã¨çãããªãã¾ãã
bCondition
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-logical-not-operator> |