æšæºä»æ§ã®äžéšã§ã¯ãªãæ©èœãå®è£
ãã決å®ã¯ã©ã®ããã«è¡ãããŸããïŒ ãã¹ãŠã®ãã©ãŠã¶ãŒãããã€ããŒãšåæ§ã«ãå€ãã®å Žåããã®æ±ºå®ãäžãå¿
èŠããããŸãã ãã®åºçç©ã¯ãæšæºä»æ§ãååã§ãªãå Žåã«çžäºéçšå¯èœãªãã©ãŠã¶ãŒãäœæããããã«äœ¿çšãããããã€ãã®ååã説æããããã«ãå®éã®JavaScriptã®äŸãå€æ°æäŸããŸãã
çæ³çã«ã¯ãæšæºã®ä»æ§ã¯èªçµŠèªè¶³ã§ãã JavaScriptã®å®è£
ã«ã¯
ãECMAScriptä»æ§ã§æå®ãããŠ
ãããã¹ãŠãå«ãŸããŠ
ããã ãã§ããã以äžã¯å«ãŸããŠ
ããŸããã ãã©ãŠã¶ã®çžäºéçšæ§ã確ä¿ããã«ã¯ã
Ecma Internationalã
W3Cãªã©ã®
æšæºåçµç¹ã«ãã£ãŠå
¬éã
ããä»æ§ãäžå¯æ¬ ã§ãããšèããŠããŸãã ãã®ãããªä»æ§ã¯ããã©ãŠã¶ã®ãšã°ãŒã¯ãã£ãã«å®è£
ãã¹ãæ©èœãšãWebãµã€ãéçºè
ã«äœ¿çšãã¹ãæ©èœãäŒããŸãã
ã€ã³ã¿ãŒãããã®çŸå®ã®äžçã§ã¯ãç©äºã¯ããã»ã©æ確ã«å®çŸ©ãããŠããŸããã ä»æ§ãå®å
šã§ããããšã¯ãã£ãã«ãªããæå³çã«äžå®å
šãŸãã¯ãããŸããªãŸãŸã«ãªãããšããããŸãã ES5ä»æ§ã®ç·šéè
ãšããŠã®ç§ãã¡èªèº«ã®çµéšã«ãããæçµçãªè§£æ±ºçãèŠã€ããããªãã£ãåé¡ãåžžã«ãããšè¿°ã¹ãããšãã§ããŸãã ãã®çµæãæšæºä»æ§ã§å®çŸ©ãããŠããªãé¢æ°ã¯åºãå®è£
ãããé©çšãããŸãã æ¢åã®ã€ã³ã¿ãŒãããäžã§åäœãããã©ãŠã¶ãæ§ç¯ããããšããéçºè
ã¯ãæšæºã®ä»æ§ã§ã«ããŒãããŠããªãå€ãã®æ©èœãå®è£
ããå¿
èŠããããŸãã
å®éã®æ£èŠè¡šçŸææ³ãšã¯äœã§ããïŒ
ChakraãäœæããéãECMAScript 5ïŒES5ïŒä»æ§ïŒæ£èŠè¡šçŸã®ææ³ãå«ãïŒã«æ³šææ·±ãåŸããŸããã ããããå®éã®Webãµã€ãã§ãã¹ããéå§ãããšãäžéšã®æ£èŠè¡šçŸãªãã©ã«ã®æ§æãšã©ãŒãåå ã§æ©èœããªãã£ãããŒãžãåºå§ããŸããã ããšãã°ã次ã®ãããªå³è§ãã£ããå«ãæ£èŠè¡šçŸã§ã¯ã©ãã·ã¥ãçºçããŸããã
next = /]/.exec(buffer);
ãã®çç±ã¯ãECMAScriptæ£èŠè¡šçŸã®ææ³ããäžèŽããæåãšããŠçŽæ¥äœ¿çšã§ããªãæåã®ãªã¹ãã«å«ãŸããŠããããã§ãã ä»æ§ã§ã¯ãã·ã³ãã«
/]/
ç¡å¹ã§ãã
/]/
ãŸããã代ããã«
/\]/
ã䜿çšããå¿
èŠããããŸãã æåã«å¯Ÿãããã®ãããªå¶éã¯éèŠã§ããããã§ãªããã°ã
/axyz[ad]qwer/
ãªã©ã®ãªãã©ã«ã解æããããšãäžå¯èœã«ãªãããã§ãã ãã ããèšå·[ãåã«ä»ããªãåäžã®æ¬åŒ§]ã¯ãå®éã«ã¯åæã®é害ã«ã¯ãªããŸããã ãã ãããã®èŠæ Œã¯ãŸã åãå
¥ããããªããšäž»åŒµããŠããŸãã
å®éã«ã¯ããã¹ãŠã®ãã©ãŠã¶ãŒã
/]/
ãªã©ã®æ£èŠè¡šçŸãåãå
¥ããWebãµã€ãéçºè
ãããããèšè¿°ããŸãã
ã³ã³ã»ã³ãµã¹é¢æ°ãšã¯ãæšæºã®äžéšã§ã¯ãªãããçžäºéçšæ§ãæäŸããæ¹æ³ã§æ®éçã«å®è£
ãããŠããé¢æ°ãèšè¿°ããããã«äœ¿çšããçšèªã§ãã äžè¬ã«ãIE9ããã³ãã®ä»ã®JavaScriptå®è£
ã«ã¯ãå®éã®Webã³ã³ãã³ããæäœããããã®ãã®ãããªã³ã³ã»ã³ãµã¹é¢æ°ãå«ããå¿
èŠããããŸãã ããããæšæºã®ä»æ§ã«å«ãŸããŠããªããããæ¬åœã®å°é£ã¯ããããèå¥ããããšã«ãããŸãã
ç§ãã¡ã¯ããã®çš®ã®ã³ã³ã»ã³ãµã¹æ©èœãç¶æããå¿
èŠæ§ãèªèããŠãããã€ã³ã¿ãŒãããã®é¢é£èŠæ Œã®å°æ¥ã®çã«ããããå«ãŸããããã«åªåããŸãã ãã ãããã¹ãŠã®JavaScriptæ¡åŒµæ©èœãæ®éçãŸãã¯åäžã«å®è£
ãããŠããããã§ã¯ãããŸããã
IE9ã«ååã«_ _æåãå«ãã¡ãœããããªãã®ã¯ãªãã§ããïŒ
ES5ã«ã¯ãã¡ãœããã®èªã¿åããšèšå®ã®ãµããŒããå«ãŸããŠããŸãã äžéšã®Webãã©ãŠã¶ã§ã¯ãé·å¹Žã«ããã£ãŠåæ§ã®æ©èœãå©çšå¯èœã§ãã ãã®æéäžããã©ãŠã¶éçºè
ã¯ããŸããŸãªæ§æãšã¢ããªã±ãŒã·ã§ã³ããã°ã©ãã³ã°ã€ã³ã¿ãŒãã§ã€ã¹ïŒAPIïŒãè©Šãããã®ãããªã¡ãœãããå®çŸ©ããŸããã ES5ããåã¯ãæãåºãå®è£
ãããŠããAPIã¯__defineGetter__ããã³__defineSetter__ãšããååã®2ã€ã®ã¡ãœããã䜿çšããŠãèªã¿åã/èšå®ã¡ãœãããå®çŸ©ããŠããŸããã ã¡ãœããåã®äž¡åŽã§ã¢ã³ããŒã¹ã³ã¢ã䜿çšããããšã¯ãäžéšã®ãã©ãŠã¶éçºè
ãå®éšçãªæ©èœã§ããã¡ãœãããããŒã¯ããããç¹å®ã®JavaScriptå®è£
ã®ç¬èªã®äœã¬ãã«æ©èœã«ã¢ã¯ã»ã¹ããããã«äœ¿çšããèšå·ã§ãã
ECMA TC39ã¡ã³ããŒã¯ãå©ç¹ãæããã§ãããããES5ä»æ§ã«èªã¿åãããã³èšå®æ¹æ³ãå«ããããšã«åæããŸããã ãã ããTC39å§å¡äŒã¯ãæ°ããAPIãäœæããŠããããå®çŸ©ãã__ defineXXX__ã€ã³ã¿ãŒãã§ã€ã¹ã®æšæºåãæ§ããããšã決å®ããŸããã
TC39ããããè¡ã£ãã®ã¯ãªãã§ããïŒ ãã®APIãæäŸãããã©ãŠã¶ãŒã®åäœã«å€§ããªéããããããã ãããã®ã¡ãœããã®äžè¬çãªã»ãã³ãã£ã¯ã¹ã«åºã¥ãæšæºåã¯ãæ°ããã»ãã³ãã£ã¯ã¹ã«åãããŠæ¢åã®ãã©ãŠã¶ãŒå®è£
ã®äžéšãŸãã¯ãã¹ãŠãå€æŽããå¿
èŠãããããšãæå³ããŸãã ãããŠãããã¯ãããããç¹å®ã®ãã©ãŠã¶ã§æ©èœããããã«æžãããããã€ãã®ã¢ããªã±ãŒã·ã§ã³ãæ©èœãããªãã§ãããã
ãã1ã€ã®çç±ã¯ãåœåèŠåã®è«ççæŽåæ§ãç¶æããããšã§ãã ECMAScriptã®ä»ã®åã蟌ã¿åã¯ãã¢ã³ããŒã¹ã³ã¢ã§å§ãŸã£ãããã¢ã³ããŒã¹ã³ã¢ã§çµãã£ããããŸããã ãã®ãããªååãšå®éšçãªé¢æ°ã®æ¥ç¶ããŸãã¯ç¹å®ã®é¢æ°ã®å®è£
ã¯åºãç¥ãããŠããŸãã æšæºåãããé¢æ°ã«ãã®ã·ã³ãã«ã䜿çšãããšèª€è§£ãæããå°æ¥ã®å®éšã§ã®æçšæ§ãäœäžããŸãã
TC39å§å¡äŒã¯ã
Object.defineProperty
ã¡ãœããã«åºã¥ããŠæ°ããAPIãéçºããŸããã ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãèªã¿åãããã³èšå®ã¡ãœããã®ããããã£ã®å®çŸ©ã ãã§ãªããä»ã®æ°ããES5æ©èœããµããŒãããŸãã __DefineXXX__ã¡ãœããã¯ES5ä»æ§ã«å«ãŸããŠããŸããã§ããã
__defineXXX__ APIãæ¢ã«å®è£
ãããŠãããã©ãŠã¶ãŒã¯ãäºææ§ã確ä¿ããããã«ãåŒãç¶ãå€æŽããã«ãµããŒãã§ããŸãã ãã ããES5æšæºããµããŒããããã©ãŠã¶ãŒã®äºææ§ã確ä¿ããããã«èšè¿°ãããæ°ããã³ãŒãã§ã¯ãObject.definePropertyã¡ãœããã䜿çšããŠãèªã¿åãã¡ãœããã®ããããã£ã決å®ããå€ãèšå®ããå¿
èŠããããŸãã
éçºããŒã ã¯ãŸã IE9ã«__defineXXX__ããã°ã©ãã³ã°ã€ã³ã¿ãŒãã§ã€ã¹ãè¿œå ããããæ±ããããŠããŸãã çç±ã¯æããã§ãã äžéšã®éçºè
ã¯ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããã³ãŒããæ¢ã«æã£ãŠããããã®ã³ãŒããIE9ã§å®è¡ããããšèããŠããŸãã ãã ããIE9éçºè
ã¯ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ããµããŒãããããšã¯ãã€ã³ã¿ãŒãããäžã§çžäºéçšæ§ãæäŸãããšããåºæ¬çãªå©çã«ã¯ãªããªããšèããŠããŸãã TC39ã¯ãã§ã«ãã®APIãã¬ãã¥ãŒããŠããããã®æšæºåã¯æãŸãããªããšçµè«ä»ããŠããŸãã IE9ã§__defineXXX__ã€ã³ã¿ãŒãã§ã€ã¹ã®ãµããŒããè¿œå ãããå Žåããã®APIã¯ã€ã³ã¿ãŒãããäžã§æä¹
çãªã³ã³ã»ã³ãµã¹æ©èœã«ããã«è¿ã¥ãã§ãããã ããã¯åºæ¬çã«TC39ã®æ±ºå®ããã£ã³ã»ã«ããŸãã
æ®å¿µãªãããçæçã«ã¯ãããã«ããããã®å€ãAPIãçŸåšäœ¿çšããŠããéçºè
ã«ãšã£ãŠãããããªè¿œå äœæ¥ãçºçããŸãã ãã ãã
Object.defineProperty
ã¡ãœããã䜿çšããŠ__defineXXX__ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ããæ¢åã®ã³ãŒãã®åçŽãªäºææ§ã©ã€ãã©ãªãäœæããã®ã¯ç°¡åãªããšã®ããã«æããŸãã
æè¡äžèœã³ã³ã»ã³ãµã¹æ©èœ
JavaScriptã³ãŒãã§ã¯ãé¢æ°ãžã®ãªã³ã¯ãèšå®ã§ããŸãããŸããé¢æ°ã®å®£èšã«å
è¡ããã³ãŒãã§ãªã³ã¯ãåŒã³åºãããšãã§ããŸãã ããã¯ãJavaScriptããã¹ãŠã®é¢æ°å®£èšãã³ãŒãæ¬äœã®äžéšã«è«ççã«ãæã¡äžãããããã«å¯èœã§ãã JavaScriptã§ã¯ãåãååã®è€æ°ã®é¢æ°å®£èšãèš±å¯ãããŸãã ç°¡åãªãã¹ãæ©èœãæ€èšããŠãã ããã
<code> function testFuncDeclarationOrderïŒïŒ{</ code>
<code> f1ïŒïŒ; </ code>
<code> function f1ïŒïŒ{alertïŒ "first f1"ïŒ} </ code>
<code> </ code> <code> f1ïŒïŒ; </ code>
<code> function f1ïŒïŒ{alertïŒ "second f1"ïŒ} </ code>
<code> f1ïŒïŒ; </ code>
<code>} </ code>
åŒã³åºãåŸãé¢æ°ã¯äžé£ã®ã¢ã©ãŒããäœæããŸããïŒãsecond f1ãããsecond f1ãããsecond f1ãã ããã¯ãJavaScriptãå®éã«ãã®é¢æ°ã次ã®ããã«èšè¿°ãããŠãããã®ããã«åŠçããããã§ãã
<code> function testFuncDeclarationOrderïŒïŒ{</ code>
<code> function f1ïŒïŒ{alertïŒ "first f1"ïŒ} </ code>
<code> function f1ïŒïŒ{alertïŒ "second f1"ïŒ} </ code>
<code> f1ïŒïŒ; </ code>
<code> f1ïŒïŒ; </ code>
<code> f1ïŒïŒ; </ code>
<code>} </ code>
ECMAScriptä»æ§ã§ã¯ããããŸã§ãé¢æ°å®£èšã®é
眮ã«1ã€ã®å¶éã®ã¿ã課ããŠããŸããã ECMAScriptæšæºã«ã¯ãå¶åŸ¡æ§é å
ã®åœä»€ã®æ¬äœå
ã«é¢æ°å®£èšãé
眮ããæ©èœã¯å«ãŸããŠããŸããã 以äžã«ã³ãŒãäŸã瀺ããŸãã
<code> ifïŒsomeConditionïŒ{</ code>
<code> function f1ïŒïŒ{alertïŒ "f1"ïŒ} </ code>
<code>} </ code>
ECMAScriptä»æ§ã«åŸã£ãŠè§£æããå Žåãäžèšã®ã³ãŒãã¯æ§æãšã©ãŒãåŒãèµ·ãããŸãã ãã ããä»»æã®ãã©ãŠã¶ãŒã§å®è¡ãããšããšã©ãŒã¯çºçããªãããã§ãã åœä»€ãèš±å¯ãããŠããå Žåã¯ã©ãã§ãé¢æ°å®£èšã®ãµããŒãã¯ãã€ã³ã¿ãŒãããäžã®ã³ã³ã»ã³ãµã¹é¢æ°ã§ãã ãããããªãããªãããã¯ES5ã«å«ãŸããŠããªãã®ã§ããïŒ ES5ä»æ§ã®ã»ã¯ã·ã§ã³12ã¯ãå®éã«ããã«ã€ããŠäœããè¿°ã¹ãŠããŸãã
泚 äžè¬çã«äœ¿çšãããããã€ãã®ECMAScriptå®è£
ããåœä»€ãšããŠã®é¢æ°å®£èšã®äœ¿çšããµããŒãããããšãç¥ãããŠããŸãã ãã ããå®è£
éã§ã¯ããã®ãããªé¢æ°å®£èšã«é©çšãããã»ãã³ãã£ã¯ã¹ã«éèŠãã€ççŸããããªãšãŒã·ã§ã³ããããŸãã ãããã®äžäžèŽã®éãã«ãããé¢æ°å®£èšãåœä»€ãšããŠäœ¿çšãããšãå®è£
éã§ç¢ºå®ã«ç§»æ€ã§ããªãã³ãŒããçæãããŸãã ECMAScriptå®è£
ã§ã¯ããã®ãããªé¢æ°å®£èšã®äœ¿çšãçŠæ¢ãããã宣èšã«å¿
é ã®èŠåãæ·»ä»ããããšããå§ãããŸãã ECMAScriptã®å°æ¥ã®ãšãã£ã·ã§ã³ã§ã¯ãåœä»€ã®ã³ã³ããã¹ãã§é¢æ°ã宣èšããããã®ä»£æ¿ã®ããŒã¿ãã«æ段ãå®çŸ©ãããå¯èœæ§ããããŸãã
ãããã®èªããªã補å€ã¯ã©ãããæå³ã§ããïŒ ç°¡åã«èšãã°ãç°ãªããã©ãŠã¶ãŒã®åäœã¯å€§ããç°ãªãããã調æŽã®è©Šã¿ã¯éçŸå®çã§ããã
IE9ã¯äœãããŸããïŒ IE9ã¯ãES5ä»æ§ã§æšå¥šãããŠãããããªé¢æ°ã®åœä»€å®£èšãçŠæ¢ããŠããŸããïŒ ããããIE9ã§ã¯ããã®ãããªåºåã¯ä»¥åã®ããŒãžã§ã³ã®IEãšãŸã£ããåãããã«åŠçãããŸãã
ãªããã®æ±ºå®ãäžãããã®ã§ããïŒ ãã©ãŠã¶ãŒéçºè
ã«ãã以åã®å®éšã§ã¯ããã®ãããªåºåãæåŠãããšãå€ãã®æ¢åã®WebããŒãžãæäœäžèœã«ãªãããšã瀺ãããŠããããã§ãã
ããã¯ãããããã§ãã WebããŒãžã¯ããã©ãŠã¶ããšã«åäœãç°ãªãæ©èœã«äŸåããŠããã«ããããããããã©ãŠã¶ããšã«äºææ§ãããã®ã§ããããã 1ã€ã®å¯èœãªçãïŒå®éã«ã¯ãã³ãŒãã¯äœ¿çšãããŸããã ããã¯ãåŒã³åºãããããšã®ãªãé¢æ°ã§ãããã®çµæãããŒãžã®æ©èœã«ãšã£ãŠéèŠã§ã¯ãªãé¢æ°ã§ãããŸããŸããã äžæ¹ãJavaScriptå®è£
ããããã®é¢æ°ãæ§æãšã©ãŒãšããŠæ±ãå Žåãé¢æ°ãåŒã³åºãããªãã£ããšããŠããã¹ã¯ãªããå
šäœãæåŠãããŸãã
éçºè
ã«ãšã£ãŠãã®ãããªå±éºãªé¢æ°ã®å®è£
ã¯æãŸãããããŸããã ãã ããã€ã³ã¿ãŒãããäžã§ã®ååšã¯åºå®ãããŠãããããå®è³ªçã«éžæã®äœå°ã¯ãããŸããã
constã¯ã©ãã§ããïŒ
IEã
const
宣èšããµããŒããããã©ããçåã«æã人ãããŸãã
const
ã¯ããååä»ãå®æ°ãå€ã宣èšããæ¹æ³ãæäŸããéæšæºã®JavaScriptæ¡åŒµæ©èœã§ãã å
žåçãªã¢ããªã±ãŒã·ã§ã³ã¯æ¬¡ã®ããã«ãªããŸãã
const pi=3.14159;
ããã€ãã®ãã©ãŠã¶ã¯ãã®æ©èœããµããŒãããŠããŸãããç°åžžãªç¶æ³ã®åŠçãšãšã©ãŒãšããŠå®çŸ©ãããã®ã«ã¯å€§ããªéãããããŸãã
const
ãããµããŒãããããã©ãŠã¶ã®åäœã®ããã€ãã®éãã瀺ãäŸã次ã«ç€ºããŸãã
<code> //åãååã®è€æ°ã®const宣èšãæã€é¢æ°</ code>
<code>é¢æ°fïŒïŒ{</ code>
<code> alertïŒ 'futing within f'ïŒ; </ code>
<code> const x = 1; //å®æ°xã1ãšããŠå®£èšããŸã</ code>
<code> alertïŒxïŒ; </ code>
<code> const x = 2; //å®æ°xã2ãšããŠãªãŒããŒã©ã€ã</ code>
<code> alertïŒxïŒ; </ code>
<code> x = 3; // xã«3ãèšå®ããŠã¿ãŸã</ code>
<code> </ code> <code> alertïŒxïŒ; </ code>
<code>} </ code>
<code> alertïŒ 'fabout call'ïŒ; fïŒïŒ; </ code>
ãã©ãŠã¶ã«å¿ããŠãã³ãŒãã¯æ¬¡ã®ããšãè¡ããŸãã
- æ§æãšã©ãŒãå ±åããããŒãžãããŒãããŸããã
- fãåŒã³åºããšãã«äŸå€ãã¹ããŒããŸãã
- ã¢ã©ãŒãïŒã1ããã2ããã2ãã ã€ãŸãã競åãã
const
宣èšã¯èš±å¯ãããŸãããå²ãåœãŠã¯ç¡èŠãããŸãã - ã¢ã©ãŒãã1ããã2ããã3ãã ã€ãŸãã
const
varãšãŸã£ããåãããã«åŠçãããŸãã
å®éã
const
宣èšã®éåžžã«åçŽãªã¢ããªã±ãŒã·ã§ã³ã®ã¿ãã宣èšããµããŒãããããŸããŸãªãã©ãŠã¶ãŒãšäºææ§ããããŸãã äœããã®ãšã©ãŒãåŒãèµ·ããå¯èœæ§ã®ãããããè€éãªã¢ããªã±ãŒã·ã§ã³ãŸãã¯ã·ããªãªã®å€ãã¯ãç°ãªããã©ãŠã¶ãŒéã§äºææ§ããããŸããã
å®éã®JavaScriptå®è£
ã§ã¯ãããå°æ°ã®äºçŽ°ãªãŠãŒã¹ã±ãŒã¹ãããµããŒãã§ããŸããã ãŸãããã®å®è£
ã¯ãå®éã®WebããŒãžã§äœ¿çšå¯èœãªéå
žåçãªå¢çç·ã®ã±ãŒã¹ãšèª€ã£ãã¹ã¯ãªããã§äœããè¡ãå¿
èŠããããŸãã æšæºåãããä»æ§ã¯ãäž»ã«ãã®ãããªç¶æ³ã®ããã«ååšããå¯èœæ§ããããŸãã éåžžãåçŽãªäžè¬çãªãŠãŒã¹ã±ãŒã¹ãã©ããããã¯æããã§ãã å¢çç·ã®å Žåãããã«ã¯äºææ§ã®ããå®è£
ã®ååšãä¿èšŒããæšæºã®ä»æ§ãå¿
èŠã§ãã
TC39ã¯
const
ãES5ã«çµã¿èŸŒãããšãçå£ã«æ€èšããŠãããåæã®ES5ãããžã§ã¯ãã«ååšããŠããŸãã ãã ãããã®å®çŸ©ãšä»ã®åºåãšã®çžäºäœçšã«ã¯å€ãã®åé¡ããããŸããã æçµçã«ãTC39ã§
const
ã®æšæºåãä»æ§ã®ã次ã®ãæ¹èšãåŸ
ã€ããšã§åæã«éããŸãããããã«ããããããã®ä»ã®åé¡ã®ããã€ãã解決ãããå¯èœæ§ããããŸãã æ¬è³ªçã«ãTC39å§å¡äŒã¯ãæ¬ é¥ã®ããæ©èœã®æšæºåã¯æãŸãããªããšå€æããŸããã 代ããã«ã圌ã¯
const
æšæºåãå°æ¥ã«åãããŠå»¶æããããšã決å®ããŸããããã®å Žåã1ã€ã®é«åºŠãªèšèšããã¹ãŠã®ãã©ãŠã¶ãŒã«çµ±åã§ããŸãã
IE9ã¯
const
äœãããŸããïŒ ãããŸã§ã®ãšãããã°ã«ãŒãã¯åœŒãæ¯æããªããšãã決å®ãåºå®ããŠããŸãã ããã¯ããã¹ãŠã®ãã©ãŠã¶ã§å©çšå¯èœã«ãªã£ãããšããªããããã³ã³ã»ã³ãµã¹æ©èœã§ã¯ãããŸããã æšæºã®ä»æ§ã¯ãããŸããããæ¢åã®ãã¹ãŠã®ãã©ãŠã¶ãŒå®è£
ã®éã«ã¯æå³äžã®å€§ããªéãããããŸãã ããã«å ããŠãTC39ã¯æ¢åã®ä»£æ¿æ¡ãæšæºåããªãããšã決å®ããECMAScriptã®å°æ¥ã®ãšãã£ã·ã§ã³ã§ãã®åé¡ãåæ€èšããäºå®ã§ããããšãç¥ãããŠããŸãã
å€ãã®ãŠã§ããµã€ãéçºè
ããã®ãããªåºåã䜿çšã§ããããã«ããããšããé¡æã¯ç解ã§ããŸãã ãã ããé¢æ°ãååšããå¿
èŠãããå Žåãé¢æ°ã®æ¡ä»¶ä»ã宣èšã®ãããªå¥ã®ç¶æ³ãäœãããã¯ãããŸããããWebãµã€ãéçºè
ã¯ãã©ãŠã¶ãŒã®äºææ§ãæ°ã«ããå Žåã¯äœ¿çšããªãã»ããããã§ãããã æçµçã«ãã€ã³ã¿ãŒãããã®æåã®é·æç解決çã¯ãã€ã³ã¿ãŒãããã䜿çšããæé€ããæšæºåããã»ã¹ãé²ãã®ãåŸ
ã€ããšã§ãã
ææ決å®ãžã®ååçã¢ãããŒã
ãããã¯ãIE9ãäœæãããšãã«ã©ã®ãããªæ±ºå®ãäžãå¿
èŠããããã瀺ã4ã€ã®å
·äœçãªJavaScriptã®äŸã§ãã ã€ã³ã¿ãŒãããäžã®ä»ã®æšæºãã³ã³ã»ã³ãµã¹æ©èœã§ãåæ§ã®åé¡ãå€ãçºçããŸãã ãããã®å Žåããåæ§ã®åæãå®è¡ãããŸãã ãããŠãèŠæ Œã¯äœãšèšã£ãŠããŸããïŒ æ¬åœã«å¿
èŠãªãŠã§ããµã€ãã®æ°ã¯ïŒ ããã¯å
±éã®ã»ãã³ãã£ã¯ã¹ãæã€ã³ã³ã»ã³ãµã¹é¢æ°ã§ããïŒ äºææ§ã®ãªãæ©èœãªãã·ã§ã³ãããã€ããããŸããïŒ æšæºåå§å¡äŒã¯ãã®åé¡ã«åãçµãã§ããŸããïŒ
ãã¹ãã¹ã€ãŒãã¯ãã
ãŸããïŒ æ¡çšã¯æšæºåããã»ã¹ãä¿é²ãŸãã¯åŠšããŸããïŒ æçµçã«ãããã¯äž»èŠ³çãªå€æã®åé¡ã§ããããããã£ãŠãææ決å®ã«å¯Ÿããååçã§äžè²«ããã¢ãããŒãã確ä¿ããããã«ããããåªåãããããšãéèŠã§ãã
PSããªãã¯ãã§ã«HTML5ã§Habrãæšå®ããŸãããïŒ