ããã°ã©ãã³ã°è¨èªã«ã¯ãã©ãã«ãçµã¿è¾¼ã¿ãã¼ã¿æ§é ãããã¾ããããµã¤ãã¯è¨èªãã¨ã«ç°ãªãã¾ãããã®è¨äºã§ã¯ãJavaScript ã§ä½¿ç¨å¯è½ãªçµã¿è¾¼ã¿ãã¼ã¿æ§é ã®ä¸è¦§ã¨ãä»ã®ãã¼ã¿æ§é ã®æ§ç¯ã«ã使ããããã«ãããããã©ã®ãããªæ§è³ªãæã¡åããã¦ãããã«ã¤ãã¦è¿°ã¹ããã¨ã«ãã¾ãã
è¨èªæ¦è¦ã§ã¯ãä¸è¬çãªãã¼ã¿åãåæ§ã«ã¾ã¨ãã¦ãã¾ããããã£ã¨ä»ã®è¨èªã¨ã®æ¯è¼ãè¡ã£ã¦ãã¾ãã
åçãã¤å¼±ãåä»ãJavaScript ã¯åçè¨èªã§ãããåçåä»ãã®è¨èªã§ããJavaScript ã§ã¯ã夿°ãç´æ¥çã«ç¹å®ã®ãã¼ã¿åã«é¢é£ä»ãããã¦ããããã§ã¯ãªããã©ã®å¤æ°ã«ãããããåã®å¤ãä»£å ¥ï¼ããã³åä»£å ¥ï¼ãããã¨ãã§ãã¾ãã
let foo = 42; // foo ã¯æ°å¤åã«ãªã£ã
foo = "bar"; // foo ã¯æåååã«ãªã£ã
foo = true; // foo ã¯è«çåã«ãªã£ã
JavaScriptã¯å¼±ãåä»ãã®è¨èªã§ãããã¾ããããã¯ãå¦çã«ä¸ä¸è´ã®åãå«ã¾ããå ´åãåã¨ã©ã¼ãçºçãããã®ã§ã¯ãªããæé»ã®å夿ãå¯è½ã«ãããã¨ãæå³ãã¦ãã¾ãã
const foo = 42; // foo ã¯æ°å¤å
const result = foo + "1"; // JavaScript ã¯ãfoo ãæååã«å¤æããä»ã®ãªãã©ã³ãã¨é£çµãããã¨ãã§ãã¾ã
console.log(result); // 421
æé»ã®å夿ã¯ã¨ã¦ã便å©ã§ãããæ³å®å¤ã®å¤æãçºçããããæ³å®å¤ã®æ¹åï¼ä¾ãã°ãæååããæ°å¤ã§ã¯ãªããæ°å¤ããæååï¼ã§å¤æãçºçãããããã¨ãå¾®å¦ãªãã°ã使ããå¯è½æ§ãããã¾ããã·ã³ãã«ã¨é·æ´æ°ã«ã¤ãã¦ã¯ãJavaScript ã¯æå³çã«ç¹å®ã®æé»ã®å夿ãç¦æ¢ãã¦ãã¾ããã
ããªããã£ãå¤ãªãã¸ã§ã¯ããé¤ããã¹ã¦ã®åã¯ãè¨èªã®æä¸å±¤ã§ç´æ¥è¡¨ç¾ãããä¸å¤å¤ãå®ç¾©ãã¦ãã¾ãããããã®åã®å¤ã ããªããã£ãå¤ ã¨å¼ã³ã¾ãã
null
ãé¤ããã¹ã¦ã®ããªããã£ãåã¯ãtypeof
æ¼ç®åã§ç¢ºèªãããã¨ãã§ãã¾ããtypeof null
㯠"object"
ãè¿ãã®ã§ãnull
ã§ãããã¨ã確èªããã«ã¯ === null
ã使ç¨ããªããã°ãªãã¾ããã
null
㨠undefined
ãé¤ããã¹ã¦ã®ããªããã£ãåã«ã¯ã対å¿ãããªãã¸ã§ã¯ãã©ããã¼åãããããã®ãªãã¸ã§ã¯ãã¯ããªããã£ãå¤ã®æä½ãè¡ãããã«æç¨ãªã¡ã½ãããæä¾ãã¦ãã¾ããä¾ãã°ãNumber
ãªãã¸ã§ã¯ã㯠toExponential()
ãªã©ã®ã¡ã½ãããæä¾ãã¦ãã¾ããããªããã£ãå¤ã«å¯¾ãã¦ããããã£ã§ã¢ã¯ã»ã¹ããã¨ãJavaScript ã¯èªåçã«å¤ã対å¿ããã©ããã¼ãªãã¸ã§ã¯ãã«ã©ãããã代ããã«ãã®ãªãã¸ã§ã¯ãã®ããããã£ã«ã¢ã¯ã»ã¹ãã¾ããããããnull
ã undefined
ã®ããããã£ã«ã¢ã¯ã»ã¹ãã㨠TypeError
ä¾å¤ãçºçããããããªãã·ã§ãã«ãã§ã¼ã³æ¼ç®åãå°å
¥ããå¿
è¦ãããã¾ãã
ãªãã¸ã§ã¯ãã©ããã¼ã¯ã©ã¹ã®ãªãã¡ã¬ã³ã¹ãã¼ã¸ã«ã¯ãããªããã£ãåãã®ãã®ã®æå³ã¥ãã®è©³ç´°ãªèª¬æã ãã§ãªããããããã®åã§å©ç¨ã§ããã¡ã½ãããããããã£ã®è©³ç´°ãªæ å ±ãæ²è¼ããã¦ãã¾ãã
Null åNull åã«ã¯ãå¤ã null
ã® 1 ã¤ããããã¾ããã
Undefined åã«ã¯ãå¤ã undefined
ã® 1 ã¤ããããã¾ããã
æ¦å¿µçã«ã¯ãundefined
ã¯ å¤ ããªããã¨ã示ããnull
㯠ãªãã¸ã§ã¯ã ããªããã¨ã示ãã¾ãï¼typeof null === "object"
ã§ãããã¨ã®èª¬æã«ããªãã§ãããï¼ãè¨èªã§ã¯é常ãå¤ããªãå ´å㯠undefined
ãæ¢å®å¤ã¨ãªãã¾ãã
return
æ (return;
) ã¯ãæé»çã« undefined
ãè¿ãã¾ããobj.iDontExist
) ã«ã¢ã¯ã»ã¹ãã㨠undefined
ãè¿ããã¾ããlet x;
) ã¯ãæé»çã«ãã®å¤æ°ã undefined
ã«åæåãã¾ããArray.prototype.find()
ã Map.prototype.get()
ãªã©ãå¤ãã®ã¡ã½ããã¯è¦ç´ ãè¦ã¤ãããªã㨠undefined
ãè¿ãã¾ããã³ã¢è¨èªã§ã¯ãnull
ã使ç¨ãããé »åº¦ã¯ããªãä½ããªã£ã¦ãã¾ããæãéè¦ãªå ´æã¯ããããã¿ã¤ããã§ã¼ã³ã®çµããã§ãããã®å¾ãObject.getPrototypeOf()
ãObject.create()
ãªã©ããããã¿ã¤ãã¨ããã¨ãããã¡ã½ãã㯠undefined
ã«ä»£ãã null
ãåãå
¥ãããè¿ãã¾ãã
null
ã¯ãã¼ã¯ã¼ãã§ãããundefined
ã¯é常ã®èå¥åã§ããã¾ãã¾ã°ãã¼ãã«ããããã£ã§ããã¨è¦ãªããã¾ããå®éã«ã¯ãundefined
ã¯åå®ç¾©ãããããã·ã£ãã¦åãããããããã¨ã¯ãªãã®ã§ããã®éãã¯å°ããã§ãã
è«çå (Boolean
) ã¯è«çã®ç¶æ
ã表ããã®ã§ã true
㨠false
ã® 2 ã¤ã®å¤ãããã¾ãã
è«çå¤ã¯é常ãä¸é
æ¼ç®åãif...else
ãwhile
ãªã©ã®æ¡ä»¶æä½ã«ç¨ãããã¾ãã
æ°å¤å (Number
) 㯠IEEE 754 ã®å精度浮åå°æ°ç¹å½¢å¼ã®å¤ã§ãã2-1074 (Number.MIN_VALUE
) ãã 21023 Ã (2 - 2-52) (Number.MAX_VALUE
) ã®æ£ã®æµ®åå°æ°ç¹æ°ãããã³åãç¯å²ã®è² ã®æµ®åå°æ°ç¹æ°ã®å¤ãæ ¼ç´ã§ããããã«ãªã£ã¦ãã¾ãããå®å
¨ã«æ ¼ç´ã§ããã®ã¯ -(253 â 1) (Number.MIN_SAFE_INTEGER
) ãã 253 â 1 (Number.MAX_SAFE_INTEGER
) ã®ç¯å²ã§ãããã®ç¯å²ãå¤ããã¨ãJavaScript ã¯æ´æ°ãå®å
¨ã«è¡¨ç¾ã§ããªããªãã代ããã«å精度浮åå°æ°ç¹æ°ã®è¿ä¼¼å¤ã§è¡¨ç¾ããã¾ããæ°å¤ãå®å
¨ãªæ´æ°ã®ç¯å²å
ãã©ãã㯠Number.isSafeInteger()
ãç¨ãã¦èª¿ã¹ããã¨ãã§ãã¾ãã
表ç¾å¯è½ãªç¯å²å¤ã®å¤ã¯ãèªåçã«æ¬¡ã®ããã«å¤æããã¾ãã
Number.MAX_VALUE
ãã大ããªæ£ã®æ°ã¯ +Infinity
ã«å¤æããã¾ããNumber.MIN_VALUE
ããå°ããªæ£ã®æ°ã¯ +0
ã«å¤æããã¾ããNumber.MAX_VALUE
ããå°ããªè² ã®æ°ã¯ -Infinity
ã«å¤æããã¾ããNumber.MIN_VALUE
ãã大ããªè² ã®æ°ã¯ -0
ã«å¤æããã¾ãã+Infinity
㨠-Infinity
ã¯æ°å¦çãªç¡é大ã¨åããããªæ¯ãèãããã¾ãããè¥å¹²ã®éããããã¾ãã詳ãã㯠Number.POSITIVE_INFINITY
㨠Number.NEGATIVE_INFINITY
ãåç
§ãã¦ãã ããï¼
æ°å¤åã«ã¯ãè¤æ°ã®è¡¨ç¾ãæã¤å¤ã1ã¤ã ãããã¾ãã0
㯠-0
㨠+0
ã®ä¸¡æ¹ã§è¡¨ãã¾ãï¼0
㯠+0
ã®å¥åã§ãï¼ãå®éã«ã¯ãç°ãªã表ç¾ã«ã»ã¨ãã©éãã¯ããã¾ãããä¾ãã°ã+0 === -0
㯠true
ã§ãããã ããã¼ãã§å²ã£ãã¨ãã«ã¯æ°ã¥ããã¨ãã§ããããã«ãªã£ã¦ãã¾ãã
console.log(42 / +0); // Infinity
console.log(42 / -0); // -Infinity
NaN
("Nnot a Number") ã¯ãç¹æ®ãªæ°å¤ã®ä¸ç¨®ã§ãæ¼ç®æä½ã®çµæãæ°å¤ã¨ãã¦çºçããªãå ´åã«ããééãã¾ããã¾ããJavaScript ã§å¯ä¸ãããèªèº«ã¨çãããªãå¤ã§ãããã¾ãã
æ°å¤ã¯æ¦å¿µçã«ã¯ãæ°å¦çãªå¤ãã§ãããå¸¸ã«æé»ã®ãã¡ã«æµ®åå°æ°ç¹`ã§ã¨ã³ã³ã¼ãããã¦ãã¾ãããJavaScriptã§ã¯ãããæ¼ç®åãæä¾ãã¦ãã¾ãããããæ¼ç®åãéå¶ããå ´åãæåã®æ°å¤ã¯ 32 ãããæ´æ°ã«å¤æããã¾ãã
ã¡ã¢: ãããæ¼ç®åã§ããããã¹ã¯ã使ç¨ããã°ã 1 ã¤ã®æ°å¤ã§è¤æ°ã®è«çå¤ã表ç¾ãããã¨ãå¯è½ã§ããã JavaScript ã¯ï¼è«çåã®é åãååä»ãããããã£ã«è«çå¤ãå²ãå½ã¦ããããªãã¸ã§ã¯ãã®ãããªï¼è«çå¤ã®éåã表ç¾ããææ®µãæä¾ãã¦ããããããã®è¡ãã¯æªãç¿æ £ã¨ãã¦è¦ãªããã¦ãã¾ããããããã¹ã¯ã¯ã³ã¼ãã®å¯èªæ§ããããããããä¿å®æ§ã大ããæãªãã¾ãã
ãã¼ã«ã«ã¹ãã¬ã¼ã¸ã®å¶éã«å¯¾å¦ãããã¨ããã¨ãããæ¥µç«¯ãªç¨éï¼ãããã¯ã¼ã¯ä¸ã®åããããã«ã¦ã³ããããå ´åãªã©ï¼ã®ããã«ãé常ã«å¶ç´ãããç°å¢ã§ã¯ããã®ãããªæè¡ã使ç¨ããå¿ è¦ãããå ´åãããã¾ãããã®æè¡ã¯ããµã¤ãºãæé©åããããã«å°ããæå¾ã®ææ®µã§ããå ´åã«ã®ã¿èãããã¨ãã§ãã¾ãã
é·æ´æ°åé·æ´æ°å (BigInt
) ã¯ãä»»æã®ç²¾åº¦ã§æ´æ°ã表ç¾ã§ãã JavaScript ã®æ°å¤ããªããã£ãã§ããé·æ´æ°åã使ãã°ãæ°å¤åã§æ±ããã¨ãã§ããå®å
¨ãªæ´æ°ã®éç (Number.MAX_SAFE_INTEGER
) ãè¶
ããã大ããªæ´æ°ãå®å
¨ã«æ ¼ç´ãã¦æä½ãããã¨ãã§ãã¾ãã
é·æ´æ°åã¯ãæ´æ°ã®æ«å°¾ã« n
ã追å ãããã BigInt()
颿°ãå¼ã³åºããã¨ã§ä½æãã¾ãã
ãã®ä¾ã¯ãNumber.MAX_SAFE_INTEGER
ãã¤ã³ã¯ãªã¡ã³ãããã¨æå¾
ãããçµæãè¿ã£ã¦ãããã¨ã示ãã¦ãã¾ãã
// é·æ´æ°å
const x = BigInt(Number.MAX_SAFE_INTEGER); // 9007199254740991n
x + 1n === x + 2n; // falseã9007199254740992n 㨠9007199254740993n ã¯çãããªã
// æ°å¤å
Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2; // trueã両æ¹ã¨ã 9007199254740992
é·æ´æ°åã¯ãæ´æ°åã¨åãããã« +
, *
, -
, **
, %
ãªã©ã®æ¼ç®åã使ç¨ãããã¨ãã§ãã¾ããå¯ä¸ä½¿ããªããã®ã¯ >>>
ã§ããé·æ´æ°åã¯æ°å¤åã¨æ°å¦çãªå¤ãåãã§ãã£ã¦ãå³å¯ç価ã«ã¯ãªãã¾ããããç価ã«ã¯ãªãã¾ãã
é·æ´æ°å¤ã¯ã常ã«è¤æ°ã®å¤ããæ£ç¢ºã§ããããã§ããå¸¸ã«æ£ç¢ºã§ãªãããã§ãããã¾ãããé·æ´æ°ã¯å°æ°å¤ã表ããã¨ã¯ã§ãã¾ãããã大ããªæ´æ°ãããæ£ç¢ºã«è¡¨ããã¨ãã§ããããã§ããã©ã¡ãã®ç¨®é¡ãä»ã®ç¨®é¡ãå
å
ãã¦ããããç¸äºã«ç½®æå¯è½ãªãã®ã§ã¯ããã¾ãããç®è¡å¼ã§é·æ´æ°å¤ãéå¸¸ã®æ°å¤ã¨æ··åããå ´åãã¾ãã¯ãæé»çã«å¤æãããã¨ããå ´åã TypeError
ãçºçãã¾ãã
æååå (String
) ã¯ãããã¹ããã¼ã¿ã表ããUTF-16 ã³ã¼ãåä½ ã表ã 16 ããã符å·ãªãæ´æ°å¤ã®ã·ã¼ã±ã³ã¹ã¨ãã¦ã¨ã³ã³ã¼ããã¾ããæååã®åè¦ç´ ã¯ãæååã®ä¸ã®ä½ç½®ãå ãã¾ããæåã®è¦ç´ ã¯ä½ç½® 0
ã«ãããæ¬¡ã®è¦ç´ ã¯ä½ç½® 1
ã«ãããã¨ããå
·åã«ãªãã¾ããæååã® length ã¯ããã®ä¸ã® UTF-16 ã³ã¼ãåä½ã®åæ°ã§ãå®éã® Unicode æåæ°ã¨ã¯ç°ãªãå ´åãããã¾ãã詳細㯠String
ã®ãªãã¡ã¬ã³ã¹ãã¼ã¸ãåç
§ãã¦ãã ããã
JavaScriptã®æååã¯ä¸å¤ã§ããã¤ã¾ããä¸åº¦æååã使ãããã¨ãããã夿´ãããã¨ã¯ã§ãã¾ãããæååã¡ã½ããã¯ãç¾å¨ã®æååã®å 容ã«åºã¥ãã¦æ°ããæååã使ãã¾ããä¾ãã°ã次ã®ãããªå ´é¢ã§ãã
substring()
ã使ç¨ãã¦å
ã®æååã®é¨åæååã使ããã+
) ã¾ã㯠concat()
ãç¨ãã¦é£çµãããè¤éãªãã¼ã¿ã表ç¾ããããã«æååã使ç¨ãããæããã¨ãããã§ããããããã«ã¯çæçãªã¡ãªãããããã¾ãã
fetch()
ã® Response.text()
ã使ç¨ããã¬ã¹ãã³ã¹ããªã©ï¼ã«ããã¦å
±é忝ã§ãããæååã ãã§ä½æ¥ãããã¨ããèªæã«é§ããããã¨ãããã¾ããè¦åããããã°ãã©ã®ãããªãã¼ã¿æ§é ã§ãæååã§è¡¨ç¾ãããã¨ãå¯è½ã§ãããããã¯è¯ãèãã¨ã¯è¨ãã¾ãããä¾ãã°ãåºåãæåã使ç¨ãããã¨ã§ãªã¹ããæ¨¡å£ãããã¨ãã§ãã¾ããï¼JavaScript ã®é åã®æ¹ãé©ãã¦ãã¾ãï¼ãæ®å¿µãªãã¨ã«åºåãæåããªã¹ãã®è¦ç´ ã§ä½¿ç¨ããã¦ãã¾ã£ãå ´åããªã¹ããå£ãã¦ãã¾ãã¾ããã¨ã¹ã±ã¼ãããæåã使ç¨ãããã¨ã§ãã®åé¡ã«å¯¾å¦ãããã¨ã¯å¯è½ã§ããããã®è¦åããã¹ã¦ã«ç¨æããå¿ è¦ãããä¸ãä¸å¿ è¦ãªã¡ã³ããã³ã¹ã®è² æ ãçã¿åºãã¾ãã
æååã¯ããã¹ããã¼ã¿ã«ã¯åãã¦ãã¾ãããè¤éãªãã¼ã¿ã表ãå ´åã¯æååãè§£éããé©åãªæ½è±¡åãç¨ããå¿ è¦ãããã¾ãã
ã·ã³ãã«åã·ã³ãã« (Symbol
) ã¯ä¸æã§ä¸å¤ã®ããªããã£ãå¤ã§ããããªãã¸ã§ã¯ãã®ããããã£ã®ãã¼ã¨ãã¦ä½¿ç¨ãããã¨ãã§ãã¾ããä¸é¨ã®ããã°ã©ãã³ã°è¨èªã§ã¯ããã¢ãã ãã¨å¼ã°ãã¦ãã¾ããã·ã³ãã«ã®ç®çã¯ãä»ã®ã³ã¼ãã®ãã¼ã¨è¡çªããªããã¨ãä¿è¨¼ãããåºæã®ããããã£ãã¼ã使ãããã¨ã§ãã
ã³ã³ãã¥ã¼ã¿ã¼ç§å¦ã«ããã¦ããªãã¸ã§ã¯ãã¯èå¥åã«ãã£ã¦åç §å¯è½ãªã¡ã¢ãªã¼å ã®å¤ã§ããJavaScript ã§ã¯ããªãã¸ã§ã¯ãã¯å¯ä¸ã®å¤æ´å¯è½ãªå¤ã§ãã颿°ã¯ãå®éã«ã¯ãcallable ã¨ãã追å ã®æ©è½ãæã¤ãªãã¸ã§ã¯ãã§ãããã¾ãã
ããããã£JavaScript ã§ã¯ããªãã¸ã§ã¯ãã¯ããããã£ã®éåã¨ãã¦è¦ããã¨ãã§ãã¾ãããªãã¸ã§ã¯ããªãã©ã«æ§æã¯ãåæåãããéå®ãããä¸é£ã®ããããã£ã§ãããã®å¾ã§ããããã£ã¯è¿½å ãããåé¤ããããããã¨ãã§ãã¾ããããããã£ã®ãã¼ã¯ãæååã¾ãã¯ã·ã³ãã«ã®ã©ã¡ããã§ããä»ã®åï¼æ°å¤ãªã©ï¼ã使ç¨ãã¦ãªãã¸ã§ã¯ãã«ç´¢å¼ãä»ããå ´åãå¤ã¯æé»çã«æååã«å¤æããã¾ããããããã£ã®å¤ã¯ãä»ã®ãªãã¸ã§ã¯ããå«ããã©ã®ãããªç¨®é¡ã®å¤ã§ãããã®ã§ãè¤éãªãã¼ã¿æ§é ãæ§ç¯ãããã¨ãå¯è½ã§ãã
ãªãã¸ã§ã¯ãããããã£ã«ã¯ããã¼ã¿ããããã£ã¨ã¢ã¯ã»ãµã¼ããããã£ã® 2 種é¡ãããã¾ããããããã®ããããã£ã«ã¯ã対å¿ãã屿§ãããã¾ããããããã®å±æ§ã¯ãJavaScript ã¨ã³ã¸ã³ãå
é¨ã§ã¢ã¯ã»ã¹ãã¾ãããObject.defineProperty()
ã§è¨å®ããããObject.getOwnPropertyDescriptor()
ã§èªã¿åã£ãããããã¨ãã§ãã¾ããæ§ã
ãªãã¥ã¢ã³ã¹ã«ã¤ãã¦ã¯ãObject.defineProperty()
ã®ãã¼ã¸ã§è©³ãã解説ãã¦ãã¾ãã
ãã¼ã¿ããããã£ã¯ããã¼ã¨å¤ãé¢é£ä»ãã¾ãã以ä¸ã®å±æ§ã§è¨è¿°ãããã¨ãã§ãã¾ãã
value
ããããã£ã® get ã¢ã¯ã»ã¹ã«ãã£ã¦åå¾ãããå¤ã§ããJavaScript ã®ä»»æã®å¤ãæå®ãããã¨ãã§ãã¾ãã
writable
ããããã£ã«ä»£å ¥ãããã¨ã§å¤æ´å¯è½ãã©ããã示ãè«çå¤ã§ãã
enumerable
ããããã£ã for...in
ã«ã¼ãã§åæå¯è½ãã©ããã示ãè«çå¤ã§ããåæå¯è½æ§ãä»ã®æ©è½ãæ§æã¨ã©ã®ããã«ããåããããã«ã¤ãã¦ã¯ãããããã£ã®åæå¯è½æ§ã¨æææ¨©ãåç
§ãã¦ãã ããã
configurable
è«çå¤ã§ãããããã£ã®åé¤ãã¢ã¯ã»ãµããããã£ã¸ã®å¤æ´ã屿§ã®å¤æ´ãå¯è½ãã©ããã示ãã¾ãã
ãã¼ããå¤ãåãåºãããä¿åãããããããã® 1 ã¤ã¾ã㯠2 ã¤ã®ã¢ã¯ã»ãµã¼é¢æ° (get
ããã³ set
) ã¨é¢é£ã¥ãããã®ã§ãã
ã¡ã¢: ã¢ã¯ã»ãµã¼ ãããã㣠ã§ãããã¢ã¯ã»ãµã¼ ã¡ã½ãã ã§ã¯ãªããã¨ãèªèãããã¨ãéè¦ã§ãã颿°ãå¤ã¨ãã¦ç¨ãããã¨ã§ãJavaScript ãªãã¸ã§ã¯ãã«ã¯ã©ã¹ã®ãããªã¢ã¯ã»ãµã¼ã表ããã¨ãã§ãã¾ãããããã¯ãªãã¸ã§ã¯ããã¯ã©ã¹ã«ããããã§ã¯ããã¾ããã
ã¢ã¯ã»ãµã¼ããããã£ã«ã¯ã以ä¸ã®å±æ§ãããã¾ãã
get
空ã®å¼æ°ãªã¹ãã§å¼ã³åºããã颿°ã§ãå¤ã¸ã®åå¾ã¢ã¯ã»ã¹ãè¡ããããã³ã«ãããããã£å¤ãåå¾ãã¾ããã²ãã¿ã¼ãåç
§ãã¦ãã ãããundefined
ã«ãããã¨ãã§ãã¾ãã
set
å²ãå½ã¦ãå¤ãæ ¼ç´ãã弿°ã§å¼ã³åºããã颿°ã§ããæå®ããããããã£ã夿´ãããã¨ããã¨ãã«å®è¡ããã¾ããã»ãã¿ã¼ãåç
§ãã¦ãã ãããundefined
ã«ãããã¨ãã§ãã¾ãã
enumerable
ããããã£ã for...in
ã«ã¼ãã§åæå¯è½ãã©ããã示ãè«çå¤ã§ããåæå¯è½æ§ãä»ã®æ©è½ãæ§æã¨ã©ã®ããã«ããåããããã«ã¤ãã¦ã¯ãããããã£ã®åæå¯è½æ§ã¨æææ¨©ãåç
§ãã¦ãã ããã
configurable
è«çå¤ã§ãããããã£ã®åé¤ãã¢ã¯ã»ãµããããã£ã¸ã®å¤æ´ã屿§ã®å¤æ´ãå¯è½ãã©ããã示ãã¾ãã
ãªãã¸ã§ã¯ãã®ãããã¿ã¤ãã¯ãä»ã®ãªãã¸ã§ã¯ãã null
ãæãã¦ãã¾ããããã¯æ¦å¿µçã«ã¯ãªãã¸ã§ã¯ãã®é ãããããã£ã§ãä¸è¬çã«ã¯ [[Prototype]]
ã¨ãã¦è¡¨ããã¾ãããªãã¸ã§ã¯ãã® [[Prototype]]
ã®ããããã£ã¯ããªãã¸ã§ã¯ãèªèº«ã«ãã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ãã
ãªãã¸ã§ã¯ãã¯ã¢ãããã¯ãªãã¼ã¨å¤ã®ãã¢ã§ããããããããã¨ãã¦ãã使ç¨ããã¾ãããããã人éå·¥å¦ãã»ãã¥ãªãã£ãããã©ã¼ãã³ã¹ã®èª²é¡ãããå ´åãããã¾ããä»»æã®ãã¼ã¿ãæ ¼ç´ããããã«ã¯ã代ããã« Map
ã使ç¨ãã¦ãã ãããMap
ã®ãªãã¡ã¬ã³ã¹ã«ã¯ããã¼ã¨å¤ã®é¢é£æ§ãæ ¼ç´ããããã®ãã¬ã¼ã³ãªãã¸ã§ã¯ãã¨ãããã®éã®ã¡ãªããã¨ãã¡ãªããã«ã¤ãã¦ãã詳ããè°è«ãå«ã¾ãã¦ãã¾ãã
JavaScript ã§æ¥ä»ã表ãããã«æå®ããã API 㯠2 種é¡ããã¾ããå¤ããããã Date
ãªãã¸ã§ã¯ãã¨ãç¾è¡ã® Temporal
ãªãã¸ã§ã¯ãã§ãã Date
ã¯æã¾ãããªãè¨è¨ä¸ã®é¸æãå¤ãä¿æãã¦ãããæ°ããã³ã¼ãã§ã¯å®ç¾å¯è½ã§ããã°é¿ããã¹ãã§ãã
é
åã¯ãæ´æ°å¤ããã¼ã«ããããããã£ã¨ length
ããããã£ã®éã«ç¹æ®ãªé¢ä¿ã®åå¨ãããæ¨æºãªãã¸ã§ã¯ãã§ãã
ããã«ãé
å㯠Array.prototype
ãç¶æ¿ãã¦ãããé
åãæä½ããããã®ä¾¿å©ãªã¡ã½ãããæä¾ãã¦ãã¾ããä¾ãã°ã indexOf()
(é
åä¸ã®å¤ã®æ¤ç´¢) ã push()
(é
åã¸ã®è¦ç´ ã®è¿½å ) ãªã©ã§ããããã«ãããé
åã¯ãªã¹ããéåã表ç¾ããã®ã«æé©ãªåè£ã¨ãªãã¾ãã
åä»ãé
åã¯ãåºç¤ã¨ãªããã¤ããªã¼ãã¼ã¿ãããã¡ã¼ã®é
å風ã®ãã¥ã¼ã表ç¾ããé
åã¨åæ§ã®æå³ã¥ããæã¤ã¡ã½ãããæ°å¤ãæä¾ãã¾ãããåä»ãé
åã㯠Int8Array
ãFloat32Array
ãªã©ã®æ§ã
ãªãã¼ã¿æ§é ã®ç·ç§°ã§ããããã詳ããæ
å ±ã¯åä»ãé
åã®ãã¼ã¸ã調ã¹ã¦ãã ãããåä»ãé
åã¯ããã ArrayBuffer
ã DataView
ã¨ä½µç¨ãã¦ä½¿ç¨ãã¾ãã
ãããã®ãã¼ã¿æ§é ã¯ããªãã¸ã§ã¯ãã¸ã®åç
§ããã¼ã¨ãã¦æ±ãã¾ããSet
㨠WeakSet
ã¯ãªãã¸ã§ã¯ãã®éåã表ããMap
㨠WeakMap
ã¯ãªãã¸ã§ã¯ãã«å¤ãé¢é£ä»ãã¾ãã
èªåã§ Map
ã Set
ãå®è£
ãããã¨ãã§ãã¾ãããããããªãã¸ã§ã¯ãã¯ï¼ä¾ãã° <
"less than" ã®æå³ã§ï¼æ¯è¼ãããã¨ãã§ãããã¨ã³ã¸ã³ããªãã¸ã§ã¯ãã®ããã·ã¥é¢æ°ãå
¬éãã¦ããªãã®ã§ãæ¤ç´¢æ§è½ã¯å¿
ç¶çã«ç·å½¢ã«ãªãã¾ãããããã®ãã¤ãã£ãå®è£
ï¼WeakMap
ãå«ãï¼ã®æ¤ç´¢æ§è½ã¯ãä¸å®æéã«å¯¾ãã¦ã»ã¼å¯¾æ°ã¨ãªãã¾ãã
é常ãDOM ãã¼ãã«ãã¼ã¿ããã¤ã³ãããã«ã¯ããªãã¸ã§ã¯ãã«ç´æ¥ããããã£ãè¨å®ãããã data-*
屿§ã使ç¨ãã¾ãããããã®ææ³ã¯åãã³ã³ãã¯ã¹ãã§å®è¡ãããããããã¹ã¯ãªãããããã¼ã¿ã®å©ç¨ãå¯è½ã§ãããããä¸é½åãªé¢ãæã¡åããã¦ãã¾ããã Map
ã WeakMap
ã使ãã¨ããªãã¸ã§ã¯ãã¸ã®ãã©ã¤ãã¼ããªãã¼ã¿ãã¤ã³ããç°¡åã«è¡ããã¨ãã§ãã¾ãã
WeakMap
ããã³ WeakSet
ã§ã¯ããã¼ã¨ãã¦ãªãã¸ã§ã¯ãã¾ãã¯æªç»é²ã®ã·ã³ãã«ã®ããããã§ããã¬ãã¼ã¸ã³ã¬ã¯ã¿ã¼ã§ååå¯è½ãªå¤ã®ã¿ã許å¯ããããã¼ãã³ã¬ã¯ã·ã§ã³å
ã«æ®ã£ã¦ãã¦ãããã¼ãååãããå ´åãããã¾ãããããã¯ãã¡ã¢ãªã¼ä½¿ç¨ã®æé©åã«åºæã®ä»æ§ã¨ãã¦ä½¿ç¨ãã¾ãã
JSON (JavaScript Object Notation) 㯠JavaScript ããæ´¾çãããæ±ç¨ãã¼ã¿æ§é ããã¤è»½éãªãã¼ã¿äº¤æå½¢å¼ã§ãããå¤ãã®ããã°ã©ãã³ã°è¨èªã§ä½¿ç¨ããã¦ãã¾ããJSON ã¯ãç°ãªãç°å¢ãè¨èªéã§ãç§»è¡å¯è½ãªæ®éçãªãã¼ã¿æ§é ãæ§ç¯ãã¾ãã詳ãã㯠JSON
ãåç
§ãã¦ãã ããã
JavaScript ã«ã¯çµã¿è¾¼ã¿ãªãã¸ã§ã¯ãã®æ¨æºã©ã¤ãã©ãªã¼ãããã¾ãããªãã¸ã§ã¯ãã®è©³ç´°ã«ã¤ãã¦ã¯ããªãã¡ã¬ã³ã¹ãåç §ãã¦ãã ããã
å夿åè¿°ã®ããã«ãJavaScript ã¯å¼±ãåä»ãè¨èªã§ããã¤ã¾ããããåã®å¤ã使ç¨ããéã«ãå¥ã®åãæå¾ ãããå ´åã§ããè¨èªãé©åãªåã«å¤æãã¦ãããå ´åãå¤ãã®ã§ãããã®ããã«ãJavaScript ã§ã¯ãããã¤ãã®å¤æã«ã¼ã«ãå®ç¾©ãã¦ãã¾ãã
ããªããã£ã夿ããªããã£ã夿å¦çã¯ãããªããã£ãå¤ãæå¾ ããããã®ã®ãå®éã®å ¥åãã種é¡ã«å¼·ã叿ããªãå ´åã«ä½¿ç¨ãã¾ããæååãæ°å¤ãé·æ´æ°ãåãããã«åãå ¥ããããå ´åãã»ã¨ãã©ã§ããä¾ã示ãã¾ãã
Date()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãDate
ã¤ã³ã¹ã¿ã³ã¹ã§ãªã弿°ã 1 ã¤åãåãã¾ããæååã¯æ¥ä»æååã表ããæ°å¤ã¯ã¿ã¤ã ã¹ã¿ã³ãã表ãã¾ãã+
æ¼ç®åã¯ã䏿¹ã®ãªãã©ã³ããæååã®å ´åãæååã®é£çµãè¡ãããã以å¤ã®å ´åã¯æ°å¤ã®å ç®ãè¡ãã¾ãã==
æ¼ç®åã¯ããªãã©ã³ãã®ä¸æ¹ãããªããã£ãã§ããã䏿¹ããªãã¸ã§ã¯ãã®å ´åããªãã¸ã§ã¯ãã¯å
¥åãã種é¡ã決ã¾ã£ã¦ããªãããªããã£ãå¤ã«å¤æããã¾ãããã®æä½ã¯ãå¤ãæ¢ã«ããªããã£ãã§ããå ´åã夿ãè¡ãã¾ããããªãã¸ã§ã¯ãã¯ããã® [Symbol.toPrimitive]()
ï¼"default"
ããã³ãã¨ãã¦ï¼ãvalueOf()
ãtoString()
ã®é ã«ã¡ã½ãããå¼ã³åºããã¦ããªããã£ãã«å¤æããã¾ããããªããã£ã夿ã§ã¯ toString()
ã®åã« valueOf()
ãå¼ã³åºããã¾ãããããã¯æ°å¤å¤æã®åä½ã¨åæ§ã§ãããæåå夿ã¨ã¯ç°ãªã£ã¦ãããã¨ã«æ³¨æãã ããã
[Symbol.toPrimitive]()
ã¡ã½ããã¯ãåå¨ããå ´åãããªããã£ããè¿ãå¿
è¦ãããã¾ãããªãã¸ã§ã¯ããè¿ã㨠TypeError
ã«ãªãã¾ããvalueOf()
㨠toString()
ã«ã¤ãã¦ã¯ã䏿¹ããªãã¸ã§ã¯ããè¿ãå ´åããã®è¿å¤ã¯ç¡è¦ããã代ããã«ãã䏿¹ã®è¿å¤ã使ç¨ããã¾ããã©ã¡ããåå¨ããªãã£ãå ´åãã¾ãã¯ã©ã¡ããããªããã£ãå¤ãè¿ããªãã£ãå ´å㯠TypeError
ãçºçãã¾ããä¾ã¨ãã¦ã以ä¸ã®ã³ã¼ãã§èª¬æãã¾ãã
console.log({} + []); // "[object Object]"
{}
ã«ã []
ã«ã [Symbol.toPrimitive]()
ã¡ã½ããã¯ããã¾ããã{}
㨠[]
ã¯ä¸¡æ¹ã¨ã valueOf()
ã Object.prototype.valueOf
ããç¶æ¿ãã¦ãããããã¯ãªãã¸ã§ã¯ãèªä½ãè¿ãã¾ããè¿å¤ããªãã¸ã§ã¯ããªã®ã§ãããã¯ç¡è¦ããã¾ããå¾ã£ã¦ã代ããã« toString()
ãå¼ã³åºããã¾ãã {}.toString()
㯠"[object Object]"
ãè¿ãã䏿¹ [].toString()
ã£ã¯ ""
ãè¿ãã®ã§ãçµæã¯ããããçµåãã "[object Object]"
ã¨ãªãã¾ãã
ããªããã£ãåã«å¤æããå ´åã¯ã常㫠[Symbol.toPrimitive]()
ã¡ã½ãããåªå
ããã¾ããããªããã£ãåã®å¤æã¯ãä¸è¬ã« valueOf()
ãåªå
çã«å¼ã³åºããããããæ°å¤ã®å¤æã¨åãããã«æ¯ãèãã¾ããããããç¬èªã® [Symbol.toPrimitive]()
ã¡ã½ãããæã¤ãªãã¸ã§ã¯ãã¯ãä»»æã®ããªããã£ãåãè¿ããã¨ãã§ãã¾ããçµã¿è¾¼ã¿ãªãã¸ã§ã¯ãã®ä¸ã§ãDate
㨠Symbol
ãªãã¸ã§ã¯ãã®ã¿ãã[Symbol.toPrimitive]()
ã¡ã½ããã䏿¸ããã¾ããDate.prototype[Symbol.toPrimitive]()
㯠"default"
ãã³ãã "string"
ã§ãããã®ããã«æ±ããSymbol. prototype[Symbol.toPrimitive]()
ã¯ãã³ããç¡è¦ãã常ã«ã·ã³ãã«ãè¿ãã¾ãã
æ°å¤ã®åã«ã¯æ°å¤åã¨é·æ´æ°åã® 2 種é¡ãããã¾ããè¨èªãæ°å¤ãé·æ´æ°ããå
·ä½çã«æå®ããå ´åãããã¾ãï¼Array.prototype.slice()
ã¯æ·»åãæ°å¤ã§ãªããã°ãªããªããªã©ï¼ãä»ã«ããã©ã¡ããã許容ãããªãã©ã³ãã®ç¨®é¡ã«ãã£ã¦ç°ãªãå¦çãè¡ãå ´åãããã¾ããä»ã«ãæé»ã®å¤æã許ããªãå³å¯ãªå¼·å¶å¦çã«ã¤ãã¦ã¯ãæ°å¤åã¸ã®å¤æãé·æ´æ°åã¸ã®å¤æãåç
§ãã¦ä¸ããã
æ°å¤å¤æã¯ãæ°å¤å¤æã¨ã»ã¼åãã§ãããé·æ´æ°ã®å ´åã¯ã¯ TypeError
ãçºçãããã«ãã®ã¾ã¾è¿ãç¹ãç°ãªãã¾ãããã¹ã¦ã®ç®è¡æ¼ç®åã¯ãæ°å¤åã¨é·æ´æ°åã®ä¸¡æ¹ããªã¼ãã¼ãã¼ãããã¦ãããããæ°å¤å¤æãè¡ãããã¾ããå¯ä¸ã®ä¾å¤ã¯åé
ãã©ã¹ã§ãããã¯å¸¸ã«æ°å¤åã¸ã®å¤æãè¡ãã¾ãã
ãã¹ã¦ã®ãã¼ã¿åã«ã¯ãNullãUndefinedãã·ã³ãã«ãé¤ããããããã®å¤æå¦çãããã¾ãã詳ããã¯ãæååã¸ã®å¤æãè«çåã¸ã®å¤æããªãã¸ã§ã¯ãã¸ã®å¤æãåç §ãã¦ãã ããã
ãæ°ã¥ãããããã¾ãããããªãã¸ã§ã¯ããããªããã£ãã«å¤æããçµè·¯ã¯ 3 ã¤ããã¾ãã
[Symbol.toPrimitive]("default")
â valueOf()
â toString()
[Symbol.toPrimitive]("number")
â valueOf()
â toString()
[Symbol.toPrimitive]("string")
â toString()
â valueOf()
ãã¹ã¦ã®å ´åã«ããã¦ã[Symbol.toPrimitive]()
ãåå¨ããå ´åã¯ãå¼ã³åºãå¯è½ã§ããªããã£ããè¿ãå¿
è¦ããããvalueOf
ã toString
ãå¼ã³åºãå¯è½ã§ãªãããªãã¸ã§ã¯ããè¿ããªãå ´åã¯ç¡è¦ããã¾ãããã®å¦çã®çµããã«ã¯ãæåããã°çµæãããªããã£ãã§ãããã¨ãä¿è¨¼ããã¾ããçµæã¨ãã¦å¾ãããããªããã£ãã¯ãã³ã³ããã¹ãã«å¿ãã¦ãããªã夿ãè¡ããããã¨ãããã¾ãã
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