çŸä»£çJavaScriptããããã¢ããã³ãã«ã¬ã³ããŒ2017 â 24æ¥ç®
æã¯ES5ãšãES6ãšãèšã£ãŠãã¯ããªã®ã«æ°ä»ãããES2015ãšãåŒã°ããããã«ãªã£ãŠãŠããªããããªãªã64ã«ãªã£ãŠæ¥ã«æ°åãå¢ãããªãã¿ãããªã®ã«è¿ãæèŠã ã£ããã§ããããããªããšãããŸããã§ãããããã§ããã
æŠèŠ
- ES6ãšES2015ã¯åããã®
- ããããããããES2015ãšåŒãŒãã
- ES2015以éã¯æ¯å¹ŽæŽæ°
- æ£åŒå称㯠“ECMA-262 edition 6” ãšãããããã®
ES vs JS
JavaScript (JS) ã¯ããã°ã©ãã³ã°èšèªã§ããããã®å€§æ¬ã®ä»æ§ãšãªãã®ãECMAScript (ES) ã§ããJSã¯ESã®äžçš®ã§ãããESã®ä»æ§ã§å®ãããããã®ã¯JSã§åããŸããïŒãããã¯ãåãããšãæåŸ ããããïŒ
JSã¯åãã©ãŠã¶ãç°å¢ãçšæããŠããŸãããESã®æ¹ã¯Ecma Internationalãšããå£äœã®äžã®TC39ãšããå§å¡äŒã仿§çå®ãè¡ã£ãŠããŸãã
ãã³ããŒã¯ESã®ä»æ§éãã«JSã®åäœãå®è£ ããããšã«ãªããŸããESåŽã¯ãéã«ãã³ããŒã®ææ¡ãšå è¡å®è£ ãã仿§ããŸãšããŠãæãã§ããïŒãã¶ããããããžãæªãããïŒãäºã€ä»¥äžã®å®è£ ãååšãããŸã§æ£åŒãªä»æ§ã«ã¯ãªããŸããã
ECMAScriptã®ä»æ§
ESããå ·äœçã«ã¯ “ECMA-262” ãšããååã®ä»æ§ã§ãã
Ecma International
è²ã ãšä»æ§çå®ãè¡ã£ãŠãå£äœã¿ããã§ããES以å€ã«ãC#ãšãã
E-C-M-A
åã¯ECMA = European Computer Manufacturers AssociationïŒæ¬§å·é»åèšç®æ©å·¥æ¥äŒïŒãšããå£äœã§ãããããªããåœéåããçŸç¶ã«åãããŠ1994幎ã«ååãå€ããããã§ããWindows 95ããåã ã
ãªã®ã§ “ecma” ãšããè±åèªãååšããããã§ã¯ãªãã§ãããããšãã£ãŠçŸåšã¯ç¥èªãšããããã§ããããŸããã
ES6 vs ES2015
ãã®äºè ã¯åããã®ãæããŸããäžè¬ã«ã¯åŸè ã®åŒã³æ¹ãæšå¥šãããŸãã
ES6
æ¬æ¥ã¯ESã®ç¬¬6çã®ããšã§ãã仿§ã®æ£åŒåç§°ãšããŠã¯ “ECMA-262” ã§ããã® “Edition 6” ãšã class
ãã¢ããŒé¢æ° =>
çããããŸã©ããã®æ©èœã倿°è¿œå ãããŸããã
å身ã®ES5ã2009幎ã®çºè¡šã§ã2011幎ã®ES5.1ãæãã§ä¹ ãã¶ãã«ããã€å€§ããæŽæ°ãããŸããããã®çºè¡šå¹Žãã2015幎ã§ãã
ES2015
ãšããããã§ãES6ããš “ECMA-262 Edition 6” ã®ããšã§ãã
ãŠã§ãçéã®é²ã¿ãæ©ãã®ã§ãã£ãšçްãããæ¯å¹Žä»æ§ãçå®ããŠããããšãã話ã«ãªããŸããããããªãé£çªã¯ãããã¥ããããããšãïŒES7, ES8, ES9, ES10, …)ãããã§é£çªãããçºè¡å¹Žã§ãES6ãªãES2015ãšåŒã¶ããšãæšå¥šãããããã«ãªããŸããã
ES2016, ES2017
ããããå ¬éãããŠããŸãã
ES2015ã«æ¯ã¹ãŠåœ±ãèããã©ãéœåºŠæ°æ©èœãªãã远å ãããŸãã
幎ã§åŒã¶ããšãæšå¥š
ESã®5ã5.1ã6çã®ä»æ§çå®ãåŒã£åŒµã£ãAllen Wirfs-Brockæ°ã®ããã°ããã
So, why the year-based designation? The 6th edition of ECMA-262 took a long time to develop, arguably 15 years. As ES6 was approaching publication, TC39 (the Technical Committee within Ecma International that develops the ECMAScript specifications) already knew that it wanted to change its process in a way that enabled yearly maintenance updates. That meant a new edition of ECMA-262 every year with a new edition number. After a few years we would be talking about ES6, ES7, ES8, ES9, ES10, ES11, etc. Those numbers quickly loose any context for people who arenât deeply involved in the standards development process. Who would know if the current standard ES7, or ES8, or ES9? Was some feature introduced in ES6 or ES7? TC39 couldnât eliminate the actual edition numbers (standards organizations love their document numbers) but it could change the document title. We decide that TC39 would incorporate the year of release into the documents title and to encourage people to use the year when referring to a specific edition. So, the ânewest version of JavaScriptâ is ECMA-262, Edition 8 and its title is ECMAScript 2017 Language Specification. Some people still refer to it as ES8, but the preferred shorthand name is ECMAScript 2017 or just ES2017.
ã§ã¯ãäœæ 幎ããšã®åŒç§°ã«ãªãã®ã§ããããã ECMA-262ã®ç¬¬6çã¯é·ãæéãããããŸããã 15幎ã§ããã ES6ã®å ¬éãè¿ã¥ããŠããŸããããã®äœæ¥å·¥çšã倿Žãæ¯å¹ŽæŽæ°ããããšãæãŸããŠãããšãTC39 ïŒEcma Internationalå ã®ECMAScript仿§çå®ã®å°éå§å¡äŒïŒã¯ããã£ãŠããŸããã ãããæ¯å¹Žæ°ããECMA-262ããããŠæ°ããççªå·ã§ãã æ°å¹ŽåŸãç§ãã¡ã¯ ES6, ES7, ES8, ES9, ES10, ES11, etc. ã«ã€ããŠäŒè©±ããããšã«ãªããŸãã æšæºåäœæ¥ã«æãããªãæ¹ã ã«ãšã£ãŠããããã®çªå·ã¯ãããããããããªããã®ã«ãªã£ãŠããŸãã§ãããã çŸåšã®æšæºãES7ãªã®ãES8ãªã®ãããããšãES9ãªã®ãã誰ãç¥ã£ãŠãããšããã®ã§ããããã ããæ©èœã远å ãããã®ã¯ES6ïŒããããšãES7ïŒã TC39ã¯å®éã®ççªå·ãæ¶ãå»ãããšã¯ã§ããŸããã§ãããïŒæšæºåçµç¹ã¯ææžçªå·ã奜ããªã®ã§ãïŒãææžã®ã¿ã€ãã«ãå€ããããšã¯ã§ããŸããã TC39ã¯çºè¡å¹Žãææžã¿ã€ãã«ãžçµã¿èŸŒã¿ããŸãç¹å®ã®çãžèšåããå Žåã¯ãã®å¹Žã䜿ãããšãæšå¥šããããšã«ããŸããã ã§ãã®ã§ããJavaScriptææ°çãã¯ECMA-262ã®ç¬¬8çã§ããããã®ã¿ã€ãã«ã¯ECMAScript 2017 Language SpecificationãšãªããŸãã ïŒè𳿳š: 2017/08/31åœæïŒã ãããES8ãšåŒã¶äººãããŸãããç°¡ç¥åããå Žåã¯ECMAScript 2017ããããã¯ãã ES2017ãšããã®ãè¯ãã§ãããã
ïŒè𳿳š: “edition number” ãæ¥æ¬èªã§ãçæ¬¡ããšããããããã ãã©ããããŸãäžè¬çãããªããããªã®ã§ãççªå·ããšããŸããããããŸããããç¥ããªãã ãããããããã©ãïŒ
ããããESã§ã¯ãªãJSãšåŒãã æ¹ã
JSã¯ESã§ã¯ãããŸãããæ¬åœã«ESèªäœã«ã€ããŠã®æèã§ãªããã°JSã®ååã§åŒãã æ¹ãè¯ãã ããããšã®æèšãããŠããã§ã§ããïŒåé åŒçšç®æã®æ¬¡ã®æ®µèœãïŒãåæã§ãã
ãçŸä»£çãªJavaScriptããšããåŒã³æ¹
ççªå·ãé¢ä¿ããå Žåã§ããåçŽã«æ°æ§ã§åãããªããES2015以åããå€ãJS (legacy JavaScript) ãã以åŸããçŸä»£çJS (modern JavaScript) ããšåŒã³ãŸãããããšã
ES2015ã¯å€§ããªå€æŽã§ãããããããã§åããã®ã¯åŠ¥åœã ãšæããŸãã
ãŸã IE 11ïŒ2013幎ãªãªãŒã¹ïŒãšã察å¿ããªãããšãã£ãŠã®ã¯ãããšæããã ãã©ãããã¯Babelã䜿ãçããŠãã§ããã ãçŸä»£çãªæžãæ¹ã§ãã£ãŠããããã£ãããŒã䟿å©ã ãã®ã
ãã®ä»
ä»ã®ãããŒ
ã€ãã§ã«IE 9ãšãIE 11ãšããããªããŠãIE2009ãšãIE2013ãšãåŒã³ãããªãïŒ
ããšAndroid 4.4ãããªããŠAndroid 2013ãšããiOSã¯âŠâŠãŸããããããããïŒ
ãããŸã
ãšããããã§ãçŸä»£çJavaScriptããããAdvent Calendarãå š24åã§ããããããŸã§ãä»ãåãé ãããããšãããããŸããã
è¯ãã幎ãïŒ
ïŒã§ãããã€ãè§Šãæãã話é¡ãããã®ã§ãããã¡ãã£ãšã ãç¶ãããããæ¢åèšäºãå°ãæžãè¶³ãããããŸããïŒ
åè
- Standard ECMA-262 … 仿§æ¬äœ
- ECMAScript – Wikipedia … çºè¡å¹Žãšã
- Some ECMAScript Explanations and Stories for Dave … ES2015ã®åŒã³æ¹ã«é¢ããèšäº
- The TC39 Process … 仿§çå®ã®æ®µé
- ES6 or ES2015 ? ãWEB+DB PRESS Vol.87 ES6ç¹éã«å¯ããŠã – Cybozu Inside Out | ãµã€ããŠãºãšã³ãžãã¢ã®ããã° … 2015å¹Žåœæã®æ§åãšES6ãšããåŒç§°ã浞éããŠããŸã£ãçç±