Baseline Widely available
Null å使¼ç®å (??
) ã¯è«çæ¼ç®åã®ä¸ç¨®ã§ãããã®æ¼ç®åã¯å·¦è¾ºã null
ã¾ã㯠undefined
ã®å ´åã«å³ã®å¤ãè¿ãããã以å¤ã®å ´åã«å·¦ã®å¤ãè¿ãã¾ãã
const foo = null ?? "default string";
console.log(foo);
// Expected output: "default string"
const baz = 0 ?? 42;
console.log(baz);
// Expected output: 0
æ§æ 解説
Null å使¼ç®åã¯ãè«ç OR (||
) æ¼ç®åã®ç¹æ®å½¢ã¨è¦ãªããã¨ãã§ãã¾ããå¾è
ã¯å·¦è¾ºã®å¤ã null
ã undefined
ã ãã§ãªããä½ããã®å½å¤ã§ãã£ãå ´åã«å³è¾ºå¤ãè¿ããã®ã§ããè¨ãæããã¨ã||
ã使ã£ã¦å¥ã®å¤æ° foo
ã«ä½ããã®æ¢å®å¤ãä¸ããå ´åãä¸é¨ã®å½å¤ï¼''
ã 0
ãªã©ï¼ã使ç¨å¯è½ã¨ã¿ãªãã¨ãäºæ³å¤ã®åä½ã«ééãããã¨ãããã¾ãã詳ããä¾ã¯ä»¥ä¸ãåç
§ãã¦ãã ããã
Null å使¼ç®åã¯æ¼ç®åã®åªå
é ä½ãä¸ãã 5 çªç®ã§ã ||
ã®ããä¸ãæ¡ä»¶ï¼ä¸é
ï¼æ¼ç®åã®ããä¸ã¨ãã¾ãã
AND (&&
) ããã³ OR æ¼ç®å (||
) ã®ã©ã¡ãããç´æ¥ ??
ã¨çµåãããã¨ã¯ã§ãã¾ããããã®ãããªå ´åãæ§æã¨ã©ã¼ãçºçãã¾ãã
null || undefined ?? "foo"; // SyntaxError ãçºç
true && undefined ?? "foo"; // SyntaxError ãçºç
代ããã«ãæ¬å¼§ã使ç¨ãã¦åªå é ä½ãæç¤ºçã«æå®ãã¦ãã ããã
(null || undefined) ?? "foo"; // "foo" ãè¿ã
ä¾ Null å使¼ç®åã®ä½¿ç¨
次ã®ä¾ã§ã¯ãæ¢å®å¤ãè¨å®ãã¦ãã¾ãããnull
ã undefined
以å¤ã®å¤ã¯ä¿æããã¾ãã
const nullValue = null;
const emptyText = ""; // falsy
const someNumber = 42;
const valA = nullValue ?? "default for A";
const valB = emptyText ?? "default for B";
const valC = someNumber ?? 0;
console.log(valA); // "default for A"
console.log(valB); // "" (空æåå㯠null ã§ã undefined ã§ããªããã)
console.log(valC); // 42
夿°ã«æ¢å®å¤ã代å
¥ãã
以åã¯ã夿°ã«æ¢å®å¤ã代å
¥ãããå ´åã®ä¸è¬çãªãã¿ã¼ã³ã¯ãè«ç OR æ¼ç®åï¼||
ï¼ã使ç¨ãããã¨ã§ããã
let foo;
// foo ã«ã¯ä½ãå¤ã代å
¥ããã¦ããªãã®ã§ãundefined ã®ã¾ã¾ã§ã
const someDummyText = foo || "Hello!";
ãããã||
ãè«çæ¼ç®åã§ããããã左辺ã®å¤ã¯è©ä¾¡ã«ãã£ã¦å¼·å¶çã«è«çå¤ã«ãªããå½å¤ï¼0
, ''
, NaN
, false
ãªã©ï¼ãè¿ããããã¨ã¯ããã¾ããããã®åä½ã¯ã 0
ã ''
, NaN
ãæå¹ãªå¤ã¨èãã¦ããå ´åãäºæãã¬çµæãå¼ãèµ·ããå¯è½æ§ãããã¾ãã
const count = 0;
const text = "";
const qty = count || 42;
const message = text || "hi!";
console.log(qty); // 42 ã§ãã 0 ã§ã¯ãªã
console.log(message); // "hi!" ã§ãã "" ã§ã¯ãªã
Null å使¼ç®åã¯ã左辺ã®å¤ã null
ããã㯠undefined
ã®ã©ã¡ããï¼ãã®ä»ã® falsy ãªå¤ã¯å«ã¿ã¾ããï¼ã«è©ä¾¡ãããå ´åã«ã®ã¿å³è¾ºã®å¤ãè¿ããã¨ã§ããã®æ½å¨çãªå±éºãåé¿ãã¾ãã
const myText = ""; // 空æååï¼ããªãã¡å½å¤ã§ãããï¼
const notFalsyText = myText || "Hello world";
console.log(notFalsyText); // Hello world
const preservingFalsy = myText ?? "Hi neighborhood";
console.log(preservingFalsy); // '' (myText 㯠undefined ã§ã null ã§ããªã)
ç絡è©ä¾¡
'OR' æ¼ç®åã 'AND' æ¼ç®åã¨åæ§ã«ã左辺ã null
ã§ã undefined
ã§ããªããã¨ã夿ããå ´åãå³è¾ºã®å¼ã¯è©ä¾¡ããã¾ããã
function a() {
console.log("a ãå¼ã³åºããã¾ãã");
return undefined;
}
function b() {
console.log("b ãå¼ã³åºããã¾ãã");
return false;
}
function c() {
console.log("c ãå¼ã³åºããã¾ãã");
return "foo";
}
console.log(a() ?? c());
// "A ãå¼ã³åºããã¾ãã"ã "C ãå¼ã³åºããã¾ãã" ã®ã㨠"foo" ã¨åºå
// A() 㯠undefined ãè¿ãããã両æ¹ã®å¼ãè©ä¾¡ããããã
console.log(b() ?? c());
// "B ãå¼ã³åºããã¾ãã" ã®ã㨠"false" ã¨åºå
// B() 㯠false ãè¿ãããï¼ãã㦠null ã undefined ãè¿ããªãï¼ã
// å³è¾ºã®å¼ã¯è©ä¾¡ãããªã
ãªãã·ã§ãã«ãã§ã¼ã³æ¼ç®å (?.
) ã¨ã®é¢ä¿
Null å使¼ç®åã¯ã undefined
㨠null
ãç¹å®ã®å¤ã¨ãã¦æ±ãã¾ããããªãã·ã§ãã«ãã§ã¼ã³æ¼ç®å (?.
) ãåæ§ã®æ±ãããã¾ãããã®æ¼ç®åã¯ãnull
ã¾ã㯠undefined
ã§ããå¯è½æ§ã®ãããªãã¸ã§ã¯ãã®ããããã£ã«ã¢ã¯ã»ã¹ããã®ã«ä¾¿å©ã§ãã
const foo = { someFooProp: "hi" };
console.log(foo.someFooProp?.toUpperCase() ?? "not available"); // "HI"
console.log(foo.someBarProp?.toUpperCase() ?? "not available"); // "not available"
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4