ãã®èšäºã§ã¯ãããã³ããšã³ãéçºè
ã®éã§ãŸããŸãè°è«ãããŠããããã€ãã£ãECMAScriptã¢ãžã¥ãŒã«ã«é¢ããèšäºã®ç¿»èš³ãå
±æããããšæããŸã ã Javascriptã¯ãããŸã§ã¢ãžã¥ãŒã«ã§ã®ãã€ãã£ããªäœæ¥ããµããŒãããããšã¯ãªããããã³ããšã³ãã§ããç§ãã¡ã¯ã¢ãžã¥ãŒã«ã䜿çšããããã«åžžã«è¿œå ã®ããŒã«ã䜿çšããå¿
èŠããããŸããã ããããããã«Webpackã䜿çšããŠã¢ãžã¥ãŒã«ãã³ãã«ãäœæããå¿
èŠããªããªãããšãæ³åããŠãã ããã ãã©ãŠã¶ãããªãã®ããã«ãã¹ãŠãåéããäžçãæ³åããŠãã ããã ãããã®èŠéãã«ã€ããŠè©³ãããäŒãããããšæããŸãã2016幎ã«ã¯ãæ°ããæšæºã®å€ãã®èå³æ·±ãæ©èœãšæçšæ§ããã©ãŠã¶ãŒãšNodejsã«è¿œå ãããŸãããç¹ã«
ECMAScript 2015ä»æ§ã§ãã çŸåšããã©ãŠã¶ãŒéã®ãµããŒãã100ïŒ
ã«è¿ãç¶æ³ã«çŽé¢ããŠããŸãã

ãŸãã
ECMAScriptã¢ãžã¥ãŒã« ïŒES / ES6ã¢ãžã¥ãŒã«ãšåŒã°ããããšãå€ãïŒãââå®éã«æšæºã«å°å
¥ãããŠããŸãã ããã¯ä»æ§ã®äžã§å¯äžå¿
èŠãªéšåã§ãããå®è£
ã«æãæéãå¿
èŠãšããŸãããå®å®ããããŒãžã§ã³ã§ãªãªãŒã¹ãããŠãããã©ãŠã¶ã¯ãŸã ãããŸããã
Safari 19 Technical PreviewãšEdge 15ã¯æè¿ããã©ã°ãªãã®ã¢ãžã¥ãŒã«å®è£
ãè¿œå ããŸããã ããªãã¿ã®ãã³ãã«ãšã¢ãžã¥ãŒã«ã®ãã©ã³ã¹ãã€ã¬ãŒã·ã§ã³ã®äœ¿çšãæŸæ£ã§ããæãè¿ã¥ããŠããŸãã
ããã³ããšã³ãã®äžçãã©ã®ããã«ãªã£ãã®ããããããç解ããããã«ãJSã¢ãžã¥ãŒã«ã®æŽå²ããå§ããŠã次ã«ES6ã¢ãžã¥ãŒã«ã®çŸåšã®å©ç¹ãšå®è£
ãèŠãŠã¿ãŸãããã
ã¡ãã£ãšããæŽå²
ã¢ãžã¥ãŒã«ãæ¥ç¶ããã«ã¯å€ãã®æ¹æ³ããããŸããã ãããã®æãå
žåçãªäŸãæããŸãããã
1.ã¹ã¯ãªããã¿ã°å
ã®é·ãã³ãŒãã äŸïŒ
<!--html--> <script type="application/javascript"> </script>
2.ãã¡ã€ã«éã§ããžãã¯ãåé¢ããã¹ã¯ãªããã¿ã°ã䜿çšããŠããããæ¥ç¶ããŸãã
<!--html--> <script type="application/javascript" src="PATH/module1.js" ></script> <script type="application/javascript" src="PATH/module2.js" ></script>
3.é¢æ°ãšããŠã®ã¢ãžã¥ãŒã«ïŒããšãã°ãã¢ãžã¥ãŒã«ã¯äœããè¿ãé¢æ°ã§ããèªå·±åŒã³åºãé¢æ°ãŸãã¯ã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°ïŒ+ã¢ããªã±ãŒã·ã§ã³ã®ãšã³ããªãã€ã³ããšãªãã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã«/ã¢ãã«ïŒ
<!--html--> <script type="application/javascript" src="PATH/polyfill-vendor.js" ></script> <script type="application/javascript" src="PATH/module1.js" ></script> <script type="application/javascript" src="PATH/module2.js" ></script> <script type="application/javascript" src="PATH/app.js" ></script>
ããã«å ããŠãããã³ããšã³ãã³ãã¥ããã£ã¯ããã®ç¡ç§©åºã®f宎ã«å€æ§æ§ãå ããå€ãã®çš®é¡ãšæ°ããæ¹æ³ãçºæããŸããã
äž»ãªã¢ã€ãã¢ã¯ã次ã®ããã«ãåäžã®JSãã¡ã€ã«ãªã³ã¯ãç°¡åã«æ¥ç¶ã§ããã·ã¹ãã ãæäŸããããšã§ãã
<!--html--> <script type="application/javascript" src="PATH/app.js" ></script>
ããããããã¯ãã¹ãŠãéçºè
ããã³ãã©ãŒã®åŽãã€ãŸãã³ãŒãæ§ç¯ã·ã¹ãã ãéžæãããšããäºå®ã«åž°çããŸããã ããã«ãJavaScriptã®ã¢ãžã¥ãŒã«ã®äž»èŠãªå®è£
ãæ€èšããããšãææ¡ãããŠããŸãã
éåæã¢ãžã¥ãŒã«å®çŸ©ïŒ AMD ïŒ
ãã®ã¢ãããŒãã¯ã
RequireJSã©ã€ãã©ãªãšãçµæã®ãã³ãã«ãäœæããããã®
r.jsãªã©ã®ããŒã«ã§åºãå®è£
ãããŠ
ããŸãã äžè¬çãªæ§æïŒ
ããã¯ãNode.jsãšã³ã·ã¹ãã ã®äž»èŠãªã¢ãžã¥ãŒã«åœ¢åŒã§ãã ã¯ã©ã€ã¢ã³ãããã€ã¹ã®ãã³ãã«ãäœæããããã®äž»èŠãªããŒã«ã®1ã€ã¯
Browserifyã§ãã ãã®æšæºã®ç¹åŸŽã¯ãã¢ãžã¥ãŒã«ããšã«åå¥ã®ã¹ã³ãŒããæäŸããããšã§ãã ããã«ãããã°ããŒãã«ã¹ã³ãŒãããã³ã°ããŒãã«å€æ°ãžã®æå³ããªãæŒæŽ©ãåé¿ãããŸãã
äŸïŒ
ECMAScriptã¢ãžã¥ãŒã«ïŒå¥åES6 / ES2015 /ãã€ãã£ãJavaScriptã¢ãžã¥ãŒã«ïŒ
ES2015ã䜿çšããŠãã¢ãžã¥ãŒã«ãæäœããå¥ã®æ¹æ³ãæäŸãããŸããã æ°ããæšæºã«ã¯ã次ã®ãããªããã³ããšã³ãã®ããŒãºãæºããæ°ããæ§æãšæ©èœããããŸãã
- åå¥ã®ã¢ãžã¥ãŒã«å¯èŠé å
- ããã©ã«ãã®å³æ Œã¢ãŒã
- 埪ç°äŸå
- ã³ãŒããç°¡åã«ç Žããä»æ§ã確èªããæ©èœ
ãããã®ã·ã¹ãã ã®1ã€ä»¥äžããµããŒãããããŒããŒãã³ã³ãã€ã©ãŒãããã³ã¢ãããŒãã®å®è£
ãå€æ°ãããŸãã äŸïŒ
ããŒã«
ä»æ¥ãJavaScriptã§ã¯ãããŸããŸãªããŒã«ã䜿çšããŠã¢ãžã¥ãŒã«ãçµåããããšã«æ
£ããŠããŸãã ECMAScriptã¢ãžã¥ãŒã«ã«ã€ããŠè©±ããŠããå Žåã¯ã次ã®ããããã䜿çšã§ããŸãã
éåžžããã®ããŒã«ã¯ãCLIã€ã³ã¿ãŒãã§ãŒã¹ãšãJSãã¡ã€ã«ãããã³ãã«ãäœæããããã«æ§æããæ©èœãæäŸããŸãã ãšã³ããªãã€ã³ããšäžé£ã®ãã¡ã€ã«ãåãåããŸãã éåžžããã®ãããªããŒã«ã¯ãuse strictããèªåçã«è¿œå ããŸãã ãããã®ããŒã«ã®äžéšã¯ãå¿
èŠãªãã¹ãŠã®ç°å¢ïŒå€ããã©ãŠã¶ãŒãNode.jsãªã©ïŒã§åäœããããã«ã³ãŒããå€æããããšãã§ããŸãã
ãšã³ããªãã€ã³ããèšå®ããBabelã䜿çšããŠJSãã¡ã€ã«ã転眮ããåçŽåãããWebPackæ§æãèŠãŠã¿ãŸãããã
æ§æã¯äž»ãªéšåã§æ§æãããŠããŸãã
- webpack.entry.jsããå§ããŸã
- ãã¹ãŠã®JSãã¡ã€ã«ã«BabelããŒããŒã䜿çšããŸãïŒã€ãŸããã³ãŒãã¯ããªã»ãã/ãã©ã°ã€ã³ã«å¿ããŠå€æããããã³ãã«ãçæãããŸãïŒ
- çµæã¯main.jsãã¡ã€ã«ã«é
眮ãããŸã
ãã®å ŽåãååãšããŠãindex.htmlãã¡ã€ã«ã«ã¯ä»¥äžãå«ãŸããŸãã
<script src="build/main.js"></script>
ãŸããã¢ããªã±ãŒã·ã§ã³ã¯ãã³ãã«/ãã©ã³ã¹ã³ã³ãã€ã«ãããJSã³ãŒãã䜿çšããŸãã ããã¯ãã³ãã©ãŒãæäœããããã®äžè¬çãªã¢ãããŒãã§ãããã³ãã«ãªãã§ãã©ãŠã¶ãŒã§æ©èœãããæ¹æ³ãèŠãŠã¿ãŸãããã
JavaScriptã¢ãžã¥ãŒã«ããã©ãŠã¶ãŒã§æ©èœãããæ¹æ³
ãã©ãŠã¶ã®ãµããŒã
çŸåšãææ°ã®åãã©ãŠã¶ãŒã¯ES6ã¢ãžã¥ãŒã«ããµããŒãããŠããŸãã

ã©ãã§ç¢ºèªã§ããŸãã
ã芧ã®ãšãããçŸåšãSafari Technology Preview 19+ããã³EDGE 15 Preview Build 14342+ã§ãã€ãã£ãJSã¢ãžã¥ãŒã«ããã¹ãã§ããŸãã åäœäžã®ã¢ãžã¥ãŒã«ãããŠã³ããŒãããŠè©ŠããŠã¿ãŸãããã
Firefoxã§å©çšå¯èœãªESã¢ãžã¥ãŒã«
Firefox NightlyãããŠã³ããŒãã§ããŸããã€ãŸããã¢ãžã¥ãŒã«ã¯ãŸããªã
FF Developer Editionã«è¡šç€ºããããã®åŸå®å®çã®ãã©ãŠã¶ãŒã«è¡šç€ºãããŸãã
ESã¢ãžã¥ãŒã«ãæå¹ã«ããã«ã¯ïŒ
- configã«é¢ããããŒãžãéããŸã
- ããªã¹ã¯ãåãå
¥ããŸãïŒããã¯ãªãã¯ããŸã
- ãã©ã° `dom.moduleScripts.enabled`ãèŠã€ããŸã
- ããã«ã¯ãªãã¯ããŠãã©ã°å€ãtrueã«å€æŽããŸã
ããã§ãFirefoxã§ESã¢ãžã¥ãŒã«ã䜿çšã§ããããã«ãªããŸããã
å©çšå¯èœãªESã¢ãžã¥ãŒã«ãå«ãSafariãã¯ãããžãŒãã¬ãã¥ãŒ
MacOSã䜿çšããŠããå Žåã¯ã
developer.apple.comããææ°ã®Safariãã¯ãããžãŒãã¬ãã¥ãŒïŒTPïŒãããŠã³ããŒãããã ãã§ãã ã€ã³ã¹ããŒã«ããŠéããŸãã
Safari Technology PreviewããŒãžã§ã³21+以éãESã¢ãžã¥ãŒã«ã¯ããã©ã«ãã§æå¹ã«ãªã£ãŠããŸãã
Safari TP 19ãŸãã¯20ã®å ŽåãES6ã¢ãžã¥ãŒã«ãæå¹ã«ãªã£ãŠããããšã確èªããŸããã¡ãã¥ãŒã®[éçº]â[å®éšæ©èœ]â[ES6ã¢ãžã¥ãŒã«]ãéããŸãã

å¥ã®ãªãã·ã§ã³ã¯
ãææ°ã®Webkit Nightlyã
ããŠã³ããŒãããŠãããã§éã¶ããšã§ãã
EDGE 15-ESã¢ãžã¥ãŒã«ããªã³ã«ãã
Microsoftããç¡æã®ä»®æ³ãã·ã³ãããŠã³ããŒãã§ã
ãŸã ã
ãã©ãããã©ãŒã ãšããŠãMicrosoft EDGE on Win 10 PreviewïŒ15.XXXXXïŒãä»®æ³ãã·ã³ïŒVMïŒãéžæããããšãã°ãVirtual BoxãïŒç¡æïŒãéžæããŸãã
ä»®æ³ãã·ã³ãã€ã³ã¹ããŒã«ããŠèµ·åããEDGEãã©ãŠã¶ãŒãéããŸãã
aboutïŒãã©ã°ããŒãžã«ç§»åãããå®éšçãªJavaScriptæ©èœãæå¹ã«ããããã©ã°ãæå¹ã«ããŸãã

以äžã§ãECMAScriptã¢ãžã¥ãŒã«ã®ãã€ãã£ãå®è£
ã§éã¶ããšãã§ããããã€ãã®ç°å¢ãã§ããŸããã
ãã€ãã£ãã¢ãžã¥ãŒã«ãšã¢ã»ã³ãã«ã¢ãžã¥ãŒã«ã®éã
ã¢ãžã¥ãŒã«ã®ãã€ãã£ãæ©èœããå§ããŸãããã
- åã¢ãžã¥ãŒã«ã«ã¯ãã°ããŒãã«ã§ã¯ãªãç¬èªã®ã¹ã³ãŒãããããŸãã
- ãuse strictããã£ã¬ã¯ãã£ããæå®ãããŠããªãå Žåã§ãããããã¯åžžã«strictã¢ãŒãã§ãã
- ã¢ãžã¥ãŒã«ã¯ã importãã£ã¬ã¯ãã£ãã䜿çšããŠä»ã®ã¢ãžã¥ãŒã«ãã€ã³ããŒãã§ããŸãã
- ã¢ãžã¥ãŒã«ã¯exportã䜿çšããŠãšã¯ã¹ããŒãã§ããŸãã
ãããŸã§ã®ãšãããç§ãã¡ããã³ãã©ãŒã§æ
£ããŠãããã®ãšç¹ã«æ·±å»ãªéãã¯èŠãŠããŸããã 倧ããªéãã¯ããã©ãŠã¶ã§ãšã³ããªãã€ã³ããæäŸããå¿
èŠãããããšã§ãã ç¹å®ã®type = "module"å±æ§ãæã€ã¹ã¯ãªããã¿ã°ãæäŸããå¿
èŠããããŸãã次ã«äŸã瀺ããŸãã
<script type= "module" scr= "PATH/file.js" ></script>
ããã«ãããã¹ã¯ãªããã«ä»ã®ã¹ã¯ãªããã®ã€ã³ããŒããå«ãŸããŠããå¯èœæ§ããããããã«å¿ããŠåŠçããå¿
èŠãããããšããã©ãŠã¶ã«éç¥ãããŸãã ããã«è¡šç€ºãããäž»ãªè³ªåïŒ
ãã¡ã€ã«ãæ¬è³ªçã«ã¢ãžã¥ãŒã«ã§ããå ŽåãJavaScriptã€ã³ã¿ãŒããªã¿ãŒãã¢ãžã¥ãŒã«ãæ€åºã§ããªãã®ã¯ãªãã§ããïŒ
çç±ã®1ã€ã¯ããã€ãã£ãã¢ãžã¥ãŒã«ãããã©ã«ãã§å³æ Œã¢ãŒãã«ãªã£ãŠãããã¯ã©ã·ãã¯ã¹ã¯ãªãããããã§ã¯ãªãããšã§ãã
- ããšãã°ãã€ã³ã¿ãŒããªã¿ãŒããã¡ã€ã«ã解æããŸããããã¯ããããlaxã¢ãŒãã®å€å
žçãªã¹ã¯ãªããã§ãããšæ³å®ããŠããŸãã
- 次ã«ã圌ã¯ãã€ã³ããŒã/ãšã¯ã¹ããŒãããã£ã¬ã¯ãã£ããèŠã€ããŸãã
- ãã®å Žåããã¹ãŠã®ã³ãŒããå³å¯ã¢ãŒãã§å床解æããã«ã¯ãæåããéå§ããå¿
èŠããããŸãã
å¥ã®çç±ã¯ãåããã¡ã€ã«ãã¹ããªã¯ãã¢ãŒããªãã§æå¹ã§ãããã¹ããªã¯ãã¢ãŒãã§ã¯ç¡å¹ã§ããå¯èœæ§ãããããšã§ãã ãã®åŸãæå¹æ§ã¯ããããã©ã®ããã«è§£éããããã«ãã£ãŠç°ãªããäºæããªãåé¡ã«ã€ãªãããŸãã
äºæ³ããããã¡ã€ã«ã®ããŠã³ããŒãã®çš®é¡ã決å®ããããšã§ãæé©åããå€ãã®æ¹æ³ãéãããŸãïŒããšãã°ãã€ã³ããŒãããããã¡ã€ã«ã䞊è¡ããŠããŒããã/ HTMLãã¡ã€ã«ã®æ®ãã解æããåã«ïŒ
ESã¢ãžã¥ãŒã«çšã®Microsoft Chakra JavaScriptãšã³ãžã³ã§äœ¿çšããã ããã€ãã®äŸãèŠã€ããããšãã§ã
ãŸã ã
Node.jsã§ãã¡ã€ã«ãã¢ãžã¥ãŒã«ãšããŠæå®ããæ¹æ³
Node.jsç°å¢ã¯ãã©ãŠã¶ãšã¯ç°ãªããscriptã¿ã°type = "module"ã®äœ¿çšã¯ç¹ã«é©ããŠããŸããã ãã
ãè¡ãããã®é©åãªæ¹æ³ã«é¢ããŠé²è¡äžã®
è°è«ããŸã ãããŸãã
ã³ãã¥ããã£ã«ãã£ãŠããã€ãã®æ±ºå®ãæåŠãããŸããã
- åãã¡ã€ã«ã«ã䜿çšã¢ãžã¥ãŒã«ããè¿œå ããŸãã
- package.jsonã®ã¡ã¿ããŒã¿ã
ä»ã®ãªãã·ã§ã³ã¯ãŸã ä¿çäžã§ãïŒ
ãã³ããããããšã
@bmeck ïŒïŒ
- ãã¡ã€ã«ãESã¢ãžã¥ãŒã«ãã©ãããå€æããŸãã
- ES6 .mjsã¢ãžã¥ãŒã«ã®æ°ãããã¡ã€ã«æ¡åŒµåã以åã®ããŒãžã§ã³ãæ©èœããªãå Žåã®ãã©ãŒã«ããã¯ãšããŠäœ¿çšãããŸãã
åã¡ãœããã«ã¯é·æãšçæãããã
Node.jsãã©ã®
æ¹åã«é²ããã«ã€ããŠã®æ確ãªçãã¯ãŸã ãããŸããã
ãã€ãã£ãã¢ãžã¥ãŒã«ã®ç°¡åãªäŸ
ãŸãã
ç°¡åãªãã¢ãäœæããŸãããïŒä»¥åã«ã€ã³ã¹ããŒã«ãããã©ãŠã¶ãŒã§å®è¡ããŠãã¢ãžã¥ãŒã«ã確èªã§ããŸãïŒã ãããã£ãŠãããã¯å¥ã®ã¢ãžã¥ãŒã«ãã€ã³ããŒãããããããã¡ãœãããåŒã³åºãåçŽãªã¢ãžã¥ãŒã«ã«ãªããŸãã æåã®ã¹ãããã¯ã次ã䜿çšããŠãã¡ã€ã«ãå«ããããšã§ãã
<script type="module"/>
<!--index.html--> <!DOCTYPE html> <html> <head> <script type="module" src="main.js"></script> </head> <body> </body> </html>
ã¢ãžã¥ãŒã«ãã¡ã€ã«ã¯æ¬¡ã®ãšããã§ãã
ãããŠæåŸã«ãã€ã³ããŒãããããŠãŒãã£ãªãã£ïŒ
ãæ°ã¥ããããããŸããããã€ã³ããŒããã£ã¬ã¯ãã£ãã䜿çšããå Žåã.jsãã¡ã€ã«æ¡åŒµåãæ®ããŸããã ããã¯ãã³ãã©ãŒã®åäœãšã¯å¥ã®éãã§ã-ãã€ãã£ãã¢ãžã¥ãŒã«ã¯ããã©ã«ãã§.jsæ¡åŒµåãè¿œå ããŸããã
次ã«ãã¢ãžã¥ãŒã«ã®ã¹ã³ãŒãã確èªããŸãããïŒ
demo ïŒïŒ
var x = 1; alert(x === window.x);
第äžã«ããã€ãã£ãã¢ãžã¥ãŒã«ãããã©ã«ãã§å³æ Œã¢ãŒãã«ãªã£ãŠããããšã確èªããŸãã ããšãã°ãã¹ããªã¯ãã¢ãŒãã¯åçŽãªå€æ°ã®åé€ãçŠæ¢ããŸãã
次ã®ãã¢ã¯ãã¢ãžã¥ãŒã«ã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããããšã瀺ããŠããŸãã
å³å¯ãªã¢ãŒãã¯ããã€ãã£ãã¢ãžã¥ãŒã«ã§ã¯ãã€ãã¹ã§ããŸããã
åèšïŒ- .jsæ¡åŒµåã¯çç¥ã§ããŸããã
- ã¹ã³ãŒãã¯ã°ããŒãã«ã§ã¯ãããŸãã;ããã¯èª°ã«ãèšåããŠããŸããã
- ããã©ã«ãã§å³å¯ã¢ãŒãã®ãã€ãã£ãã¢ãžã¥ãŒã«ïŒãå³å¯ãªäœ¿çšããèšè¿°ããå¿
èŠã¯ãªããªããŸããïŒã
ã¹ã¯ãªããã¿ã°ã®ã€ã³ã©ã€ã³ã¢ãžã¥ãŒã«
éåžžã®ã¹ã¯ãªãããšåæ§ã«ãã³ãŒããåå¥ã®ãã¡ã€ã«ã«åãã代ããã«åã蟌ãããšãã§ããŸãã åã®ãã¢ã§ã¯ãmain.jsãã¹ã¯ãªããã¿ã°type = "module"ã«çŽæ¥æ¿å
¥ããã ãã§
ãåãåäœã«ãªããŸã ã
<script type="module"> import utils from "./utils.js"; utils.alert(` JavaScript modules work in this browser: https://blog.whatwg.org/js-modules `); </script>
åèšïŒ- script type = "module"ã¯ãå€éšãã¡ã€ã«ã®ããŒããšå®è¡ãããã³ã¹ã¯ãªããã¿ã°å
ã®ã€ã³ã©ã€ã³ã³ãŒãã®å®è¡ã®äž¡æ¹ã«äœ¿çšã§ããŸãã
ãã©ãŠã¶ãã¢ãžã¥ãŒã«ãããŒãããŠå®è¡ããæ¹æ³
ãã€ãã£ãã¢ãžã¥ãŒã«ïŒéåæïŒã¯ãããã©ã«ãã§ã¹ã¯ãªããã®åäœãç°ãªããŸãã ãããç解ããããã«ãåã¹ã¯ãªããã¿ã°ã¿ã€ã=ãã¢ãžã¥ãŒã«ããdeferå±æ§ãããšãªãã§è¡šãããšãã§ããŸãã
åäœã
説æããä»æ§ã®ç»åã
次ã«ç€ºããŸã ã

ããã¯ãããã©ã«ãã§ã¯ãã¢ãžã¥ãŒã«å
ã®ã¹ã¯ãªããã¯ãããã¯ããã䞊è¡ããŠããŒããããããŒãžãHTML解æãå®äºãããšãã«å®è¡ãããããšãæå³ããŸãã ãã®åäœãå€æŽããã«ã¯ãasyncå±æ§ãè¿œå ããŸãããããããšãã¹ã¯ãªãããèªã¿èŸŒãŸãããšããã«å®è¡ãããŸãã
ãã€ãã£ãã¢ãžã¥ãŒã«ãšéåžžã®ã¹ã¯ãªããã®äž»ãªéãã¯ãéåžžã®ã¹ã¯ãªãããããã«èªã¿èŸŒãŸããŠå®è¡ãããhtml解æããããã¯ãããããšã§ãã ãããæ瀺
ããã«ã¯ãã¹ã¯ãªããã¿ã°ã®ããŸããŸãªå±æ§ãªãã·ã§ã³ã䜿çšããŠ
ãã¢ãèŠãŠãã ãããdefer\ asyncå±æ§ã®ãªãéåžžã®ã¹ã¯ãªãããæåã«å®è¡ãããŸãã
<!DOCTYPE html> <html> <head> <script type="module" src="./script1.js"></script> <script src="./script2.js"></script> <script defer src="./script3.js"></script> <script async src="./script4.js"></script> <script type="module" async src="./script5.js"></script> </head> <body> </body> </html>
ããŠã³ããŒãã®é åºã¯ããã©ãŠã¶ã®å®è£
ãã¹ã¯ãªããã®ãµã€ãºãã€ã³ããŒãããã¹ã¯ãªããã®æ°ãªã©ã«ãã£ãŠç°ãªããŸãã
åèšïŒ- ã¢ãžã¥ãŒã«ã¯ããã©ã«ãã§éåæã§ãããé
延ã¹ã¯ãªããã®ããã«åäœããŸã
JavaScriptã§ã®ãã€ãã£ãã¢ãžã¥ãŒã«ãµããŒãã®æ代ã«å
¥ããŸãã JSã¯ã倧ããªæé·ãéããã€ãã«ãã®ç¹ã«å°éããŸããã ããã¯ããããæãæåŸ
ããã人æ°ã®ããæ©èœã®1ã€ã§ãã ãã®æ°ããæšæºã«å¹æµããæ§æç³è¡£ãšæ°ããèšèªæ§é ã¯ãããŸããã
äžèšã®ãã¹ãŠã¯ããã€ãã£ãECMAScriptã¢ãžã¥ãŒã«ã®æåã®ç¥ãåãã®ããã«æäŸãããŠããŸãã 次ã®èšäºã§ã¯ãã¢ãžã¥ãŒã«ã®çžäºäœçšããã©ãŠã¶ãŒã§ã®ãµããŒããç¹å®ã®ãã€ã³ããéåžžã®ãã³ãã«ãšã®éããªã©ã確èªããŸãã
ãã£ãšè©³ããç¥ãããå Žåã¯ããªã³ã¯ããã©ãããšããå§ãããŸãã
æ£çŽãªãšãããç§ãåããŠãã€ãã£ãã¢ãžã¥ãŒã«ãè©ŠããŠãã©ãŠã¶ã§åäœãããšãããã©ãŠã¶ã§çŽæ¥åäœãå§ãããšãã«const / let / arrowé¢æ°ããã®ä»ã®æ°ããæ©èœã®ããããªã©ã®èšèªæ©èœã®å€èŠ³ã«æ°ãã€ããªãäœããæããŸããã ç§ãšåãããã«ããã©ãŠã¶ã§ã¢ãžã¥ãŒã«ãæäœããããã®ãã€ãã£ãã¡ã«ããºã ãè¿œå ããŠããã ããã°å¹žãã§ãã
ãã®ãããã¯ã«é¢ããèè
ã®ãã®ä»ã®èšäº
翻蚳è
ãã
ç§ã¯
Tutu.ruã®èªç©ºããŒã ã®ããã³ããšã³ãéçºè
ã§ãã çŸåšãWebpackããããžã§ã¯ãã®ãã³ãã©ãŒãšããŠäœ¿çšããŠããŸãã RequireJSã䜿çšããã¬ã¬ã·ãŒã³ãŒããšå€ããããžã§ã¯ãããããŸãã ãã€ãã£ãã¢ãžã¥ãŒã«ã¯éåžžã«èå³æ·±ããã®ã§ãããç¹ã«ãã¹ãŠã®ãããžã§ã¯ããHTTP / 2ã«æ¢ã«è»¢éããŠããããã楜ãã¿ã«ããŠããŸãã ãã¡ããããã¹ãŠã®ãããžã§ã¯ãã«å€æ°ã®ã¢ãžã¥ãŒã«ãããããããã³ãã©ãŒãªãã§ã¯å®è¡ã§ããŸããã ãããããã€ãã£ãã¢ãžã¥ãŒã«ã®ç»å Žã«ãããã¢ã»ã³ããªãšå±éã®ã¯ãŒã¯ãããŒãå€ããå¯èœæ§ããããŸãã