Effective JavaScriptããç®æ¬¡ã
JavaScriptã®å¦ç¿ã§ããEffective JavaScriptãã¨ããæ¬ãèªãã§ã¿ã¾ãã
Â

- ä½è : David Herman,åå·é¦å¤«
- åºç社/ã¡ã¼ã«ã¼: ç¿æ³³ç¤¾
- çºå£²æ¥: 2013/02/19
- ã¡ãã£ã¢: 大忬
- ãã®ååãå«ãããã°ãè¦ã
Â
Â
ç®æ¬¡
第1ç« ãJavaScriptã«æ £ã親ãã
é
ç®1ãã©ã®JavaScriptã使ã£ã¦ããã®ããæèããã
é
ç®2ãJavaScriptã®æµ®åå°æ°ç¹æ°ãçè§£ããã
é
ç®3ãæé»ã®åå¤æã«æ³¨æããã
é
ç®4ããªãã¸ã§ã¯ãã©ããã¼ãããããªããã£ãã好ã¾ãã
é
ç®5ãåãç°ãªãã¨ãã«==ã使ããªã
é
ç®6ãã»ãã³ãã³æ¿å
¥ã®é度ãå¦ã¼ã
é
ç®7ãæååã¯16ãããã®ç¬¦å·åä½ã並ã¹ãã·ã¼ã±ã³ã¹ã¨ãã¦èããã
Â
第2ç« ã夿°ã®ã¹ã³ã¼ã
é
ç®8ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã使ãã®ã¯ãæå°éã«ã¨ã©ãã
é
ç®9ããã¼ã«ã«å¤æ°ã¯ãããªãã宣è¨ããã
é
ç®10ãwithã¯é¿ããã
é
ç®11ãã¯ãã¼ã¸ã£ã¨ä»²è¯ãããã
é
ç®12ã夿°ã®å·»ãä¸ãï¼ãã¤ã¹ãã£ã³ã°ï¼ãçè§£ãã
é
ç®13ããã¼ã«ã«ã¹ã³ã¼ããä½ãã«ã¯å³æé¢æ°å¼ï¼IIFEï¼ã使ãã
é
ç®14ãååä»ã颿°å¼ã®ã¹ã³ã¼ãã¯å¯æ¬æ§ããªãã®ã§æ³¨æããã
é
ç®15ããããã¯ãã¼ã«ã«ãªé¢æ°å®£è¨ã®ã¹ã³ã¼ãã坿¬æ§ããªãã®ã§æ³¨æããã
é
ç®16ãevalã§ãã¼ã«ã«å¤æ°ãä½ããªã
é
ç®17ãç´æ¥evalããã鿥evalã好ã¾ãã
Â
第3ç« ã颿°ã®æ±ã
é
ç®18ã颿°ãã¡ã½ãããã³ã³ã¹ãã©ã¯ã¿ã®ãå¼ã³åºãã®éããçè§£ãã
é
ç®19ãé«é颿°ãå¿«é©ã«ä½¿ããããã«ãªãã
é
ç®20ãã«ã¹ã¿ã ã¬ã·ã¼ãä»ãã§ã¡ã½ãããå¼ã³ã ãã«ã¯callã使ã
é
ç®21ãããã¤ã§ã弿°ãã¨ãã颿°ãå¼ã³åºãã«ã¯applyã使ãã
é
ç®22ãå¯å¤é·å¼æ°é¢æ°ãä½ãã«ã¯ãargumentsã使ã
é
ç®23ãargumentsãªãã¸ã§ã¯ããæ¸ãæããªã
é
ç®24ãargumentsã¸ã®ãªãã¡ã¬ã³ã¹ã¯å¤æ°ã«ä¿åãã
é
ç®25ãåºå®ã¬ã·ã¼ããæã¤ã¡ã½ãããæ½åºããã«ã¯bindã使ã
é
ç®26ã颿°ãã«ãªã¼åããã«ã¯ãbindã使ã
é
ç®27ãã³ã¼ããã«ãã»ã«åããã«ã¯ãæååã§ã¯ãªãã¯ãã¼ã¸ã£ã使ã
é
ç®28ã颿°ã®toStringã¡ã½ããã«ä¾åããã®ã¯é¿ããã
é
ç®29ã鿍æºã®ã¹ã¿ãã¯èª¿æ»ããããã£ã使ãã®ã¯é¿ããã
Â
第4ç« ããªãã¸ã§ã¯ãã¨ãããã¿ã¤ã
é
ç®30ãprototypeãgetPrototypeOfã__proto__ã®éããçè§£ãã
é
ç®31ã__proto__ãããObject.getPrototypeOfã好ã¾ãã
é
ç®32ã__proto__ã¯æ±ºãã¦å¤æ´ããªããã¨
é
ç®33ãnewã«ä¾åããªãã³ã³ã¹ãã©ã¯ã¿ã®ä½ãæ¹
é
ç®34ãã¡ã½ããããããã¿ã¤ãã«æ ¼ç´ããã
é
ç®35ããã©ã¤ãã¼ããã¼ã¿ã®æ ¼ç´ã«ã¯ã¯ãã¼ã¸ã£ã使ãã
é
ç®36ãã¤ã³ã¹ã¿ã³ã¹ã®ç¶æ
ã¯ãã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã«ã ãä¿åãã
é
ç®37ãthisã®æé»çãªçµåãçè§£ããã
é
ç®38ãã¹ã¼ãã¼ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã¯ããµãã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ããå¼ã³åºã
é
ç®39ãã¹ã¼ãã¼ã¯ã©ã¹ã®ããããã£åã¯ã決ãã¦åå©ç¨ããªã
é
ç®40ãæ¨æºã¯ã©ã¹ããã®ç¶æ¿ãé¿ãã
é
ç®41ããããã¿ã¤ãããå®è£
ã®è©³ç´°ãã¨ãã¦æ±ãã
é
ç®42ããã¿ãããªã¢ã³ãã¼ããããé¿ãã
Â
第5ç« ãé åã¨ãã£ã¯ã·ã§ããª
é
ç®43ã軽éãã£ã¯ã·ã§ããªã¯Objectã®ç´æ¥ã¤ã³ã¹ã¿ã³ã¹ããæ§ç¯ããã
é
ç®44ããããã¿ã¤ãæ±æãäºé²ããããã«ãnullãããã¿ã¤ãã使ã
é
ç®45ããããã¿ã¤ãæ±æãé²å¾¡ããããã«hasOwnPropertyã使ã
é
ç®46ãé åºãæã¤ã³ã¬ã¯ã·ã§ã³ã«ã¯ããã£ã¯ã·ã§ããªã§ã¯ãªãé
åã使ãã
é
ç®47ãObject.prototypeã«ã¯ãåæãããããããã£ã決ãã¦è¿½å ããªã
é
ç®48ãåæã®å®è¡ä¸ã«ãªãã¸ã§ã¯ãã夿´ããªã
é
ç®49ãé
åã®å復å¦çã«ã¯ãfor...inã«ã¼ãã§ã¯ãªããforã«ã¼ãã使ãã
é
ç®50ãè¤æ°ã®ã«ã¼ããããå復ã¡ã½ããã好ã¾ãã
é
ç®51ããé
åã®ãããªãªãã¸ã§ã¯ããã«ããç·ç§°çãªé
åã¡ã½ãããåå©ç¨ã§ãã
é
ç®52ãé
åã³ã³ã¹ãã©ã¯ã¿ãããé
åãªãã©ã«ã®ã»ãã好ã¾ãã
Â
第6ç« ãã©ã¤ãã©ãªã¨APIè¨è¨
é
ç®53ãä¸è²«ããè¦ç´ãç¶æããã
é
ç®54ãundefinedã¯ãå¤ãªããã¨ãã¦æ±ã
é
ç®55ããªãã·ã§ã³ãªãã¸ã§ã¯ãã§ããã¼ã¯ã¼ãä»ã弿°ç¾¤ãåãåãã
é
ç®56ãä¸å¿
è¦ãªç¶æ
ãæé¤ãã
é
ç®57ãæè»ãªã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ããã«ãæ§é çãªåä»ãã使ã
é
ç®58ãé
åã¨ãé
åã®ãããªãã®ããåºå¥ããã
é
ç®59ãéå°ãªåå¼·å¶ãé²ãã
é
ç®60ãã¡ã½ãããã§ã¼ã³ããµãã¼ãããã
Â
第7ç« ã並è¡å¦ç
é
ç®61ãã¤ãã³ããã¥ã¼ãå
¥åºåå¾
ã¡ã§ãããã¯ãã¦ã¯ãªããªã
é
ç®62ãéåæã·ã¼ã±ã³ã¹ã«ã¯ããã¹ãããï¼ã¾ãã¯ååä»ãã®ï¼ã³ã¼ã«ããã¯ã使ã
é
ç®63ãã¨ã©ã¼ã®åããã¼ãã«æ³¨æ
é
ç®64ãéåæã«ã¼ãã«ã¯å台颿°ã使ãã
é
ç®65ãã¤ãã³ããã¥ã¼ãè¨ç®ã§ãããã¯ãããªã
é
ç®66ãã«ã¦ã³ã¿ã使ã£ã¦ä¸¦è¡å¦çã管çãã
é
ç®67ãéåæã³ã¼ã«ããã¯ãåæçã«å¼ã³åºãã¦ã¯ãããªã
é
ç®68ããããã¹ã使ã£ã¦éåæãã¸ãã¯ãæå¿«ã«ãã
Â
åºç社æ å ±
æ£èª¤è¡¨ãªã©
Â
Â
èè ç´¹ä»
Â