åŊŧãŽãįļããŽä¸äēēãããJSãŽãã¨ãįĨãŖãĻãããŽã¯čĒ°ã§ããīŧ JSONãŽäŊæč
ã§ãããå¤ããŽJavaScriptããŧãĢãŽäŊæč
ã§ããäŧčĒŦįãĒãã°ãŠãšã¯ããã¯ããŠãŧãã
HolyJS 2017 PiterãĢåå ããžãã ãĩãŗã¯ããããĢããĢã¯ã§ãŽåŊŧãŽãšããŧããčĻčļããĻãį§ããĄã¯åŊŧãŽãšããŧããŽįŋģč¨ŗã.concatīŧīŧ2015īŧThe Better Parts-æĸåãŽããã°ãŠããŗã°č¨čĒãããåšįįãĢäŊŋį¨ããæšæŗã¨ãå°æĨãŽããã°ãŠããŗã°č¨čĒã¨ã¯äŊããĢã¤ããĻå
ŦéããĻããžãã ããŦãŧãŗããŧãˇã§ãŗãã1åš´äģĨä¸ãįĩéããžããããããŽãŦããŧãã¯å¤ããŽãæ°¸é ãŽãããã°ãŠããŗã°ãŽåéĄãĢč§ĻããĻããã3ã5åš´åžãĢã¯éĸéŖæ§ãããã¨įĸēäŋĄããĻããžãã
åčļæ§ã¸ãŽé
ããŽįˇã¯æåãĒéŖčĄåŖĢã§ããäŊåŽļã§ããããĸãŗãã¯ãŧããģããģãĩãŗ=ãã°ã¸ãĨããĒã§ãã åŊŧãŽãģã¨ããŠã¯ãåŊŧãį´ æ´ãããåäžåããŽæŦãæãŽįåããžããŽčč
ã§ãããã¨ãčĻããĻããžãīŧããŽæŦã¯åŽå
¨ãĢåäžåãã§ã¯ãããžãããīŧã åŊŧåĨŗãĢå ããĻãåŊŧã¯äģãŽå¤ããŽæŦãæ¸ããĻãããããŽããĄãŽ1ã¤ãĢã¯éŠããšãããŦãŧãēããããžãã
ããã¯į´ æ´ãããåŧį¨ã§ãã åŊŧåĨŗã¯ãããļã¤ãŗãåģēį¯ãĢã¤ããĻãŽäŧ芹ã§äŊŋį¨ãããåĩé æ§ã¨čĻåžãįĩãŋåãããããšãĻãĢæšãããžããã
åŊŧã¯čĒįŠēæŠãŽč¨č¨ãĢã¤ããĻ芹ããžããã ããããčãã¯åŽéãĢã¯ããŖã¨åēãããã§ãã ãŗãŗããĨãŧãŋãŧããã°ãŠã ãĢæéŠã ã¨æããžãã į§ããĄã¯äģãŽåéãĢã¯ãĒãåčļæ§ã¨įšåĨãĒéĸäŋãæãŖãĻãããŽã§ãį§ããĄãæ¸ããããŽã¯åŽį§ã§ãĒããã°ãĒãããããã§ãĒããã°æŖããåäŊããžããã ãããĻãčč
ã¯ãį§ããĄãĢåŽå
¨æ§ããŠãŽãããĢéæããããĢã¤ããĻãŽããã¤ããŽãĸã¤ããĸãä¸ããžã-æ¸įŽãéããĻã
ããã¯ããã°ãŠããŗã°č¨čĒãĢãåŊãĻã¯ãžãã¨æããžãã
ããã°ãŠããŗã°č¨čĒã¯ããč¤éãĢãĒãåžåããããžãã ããããåŽį§ãéæãããå ´åã¯ãããããããã¤ããŽããŽãåé¤ããåŋ
čĻããããžãã ãããåŧˇããŽååã§ãã ããŽååãĢããã°ãæŠčŊãããã¤ããŽãąãŧãšã§æį¨ã§ãããäģãŽãąãŧãšã§ã¯åąéēã§ãããããč¯ããĒããˇã§ãŗãããå ´åã常ãĢæč¯ãŽãĒããˇã§ãŗãäŊŋį¨ããžãã
ããã¯éŠããģãŠįįžããåŖ°æã§ãã æč¯ãŽé¸æčĸãäŊŋããããĒãäēēãããããããžãã ãããĻãããã¯ä¸ã¤ãŽãã¨ãŽčĒ¤č§Ŗãåå ã§čĩˇãããžãīŧč¨čĒãŽåæŠčŊãäŊŋį¨ãããã¨ãĢ寞ããå ąé
Ŧããããžããã ããã¸ã§ã¯ããŽæåžãĢã¯ããäēéåšŗįãäŊŋį¨ãããã¨ããããžãããã¨ãããã§ãã¯ãčĄãããŧãããŠãĒãĒãããŧã¸ãŖãŧã¯ããžããã čĒ°ããããæ°ãĢããžããã æŖ常ãĢæŠčŊããã¨ãŠãŧãåĢãžãĒãããã°ãŠã ãäŊæãããããŽå ąé
Ŧãæ¯æãããžãã
ãééããĒãããååŧãŽä¸é¨ãĢãĒãŖããŽã¯ãã¤ã§ããīŧ ããã¯å¸¸ãĢããŽä¸é¨ã§ããã ãããéæãããã¨ã¯ããŖããĢãããžããã åŽéãã¨ãŠãŧããĒããã¨ãæåãŽčĻäģļã§ãããã¨ãåŋãããĄã§ãã ããããŖãĻãåĒããããã°ãŠããŗã°č¨čĒããããæããĻãããã¯ãã§ãã
åäēēãäģãŽč¨čĒãĢéŠį¨ã§ããæ°ãããĸã¤ããĸãæäžãããŽã§ãã§ããã ãå¤ããŽããã°ãŠããŗã°č¨čĒãåĻãļãã¨ããå§ãããžãã
æãæããĻãããč¨čĒã¯JavaScriptã§ãã JavaScriptã§ããã§ããĒãããšãĻãŽããšãį¯ãããŽã§ããããĢ寞åĻãããŽãĢå¤ããŽæéããããžããã ãããĻãį§ã¯æåãã-ææĒãŽãã¨-æ¸ãå§ããåãĢč¨čĒãåĻãļãã¨ãæ°ãĢããžããã§ããã
æåžãĢãį§ã¯č¨čĒãåĻãŗãåŊŧã¯į§ãĢæããĻãããžããã ãããĻåŊŧã¯į§ãĢæãįļããĻããžãã ããŽč¨čĒãäŊŋį¨ããĻãJavaScriptããã°ãŠã ãčĒãŋåããããããæšåããæšæŗãčĒŦæããJSLintã¨ããããŧãĢãäŊæããžããã ãããĻãJSLintã¯į§ãĢãããĢå¤ããæããĻãããžããã ããŽããšãĻãããã°ãŠããŗã°ãĢ寞ããį§ãŽčĻæšãå¤ãããŽã§ãäģãį§ãŽä¸ģãĒįŽæ¨ã¯ãã¨ãŠãŧãåĢãžãĒãããã°ãŠã ãäŊæãããã¨ã§ãã JSLintã¯ããããčĄãæšæŗãĢã¤ããĻå¤ããŽæ
å ąãæäžããĻãããžããã
JavaScriptã¨JSLintãŗãŧããäŊŋį¨ããį§ãŽįĩé¨ãĢã¤ããĻãŽæŦããJavaScript Strengthsããæ¸ããžããã åŊŧåĨŗãŽãã¨ãčãããã¨ããããããããžããã åŊŧåĨŗã¯äģã§ãããšããģãŠãŧã§ããããŊãããĻã§ãĸæŦãŽå¸å°æ§ãæãŖãĻããžãã ãģã¨ããŠãŽãŊãããĻã§ãĸããã¯ã¯ããĒãĒãŧãšãããåãĢå¤ããĒãŖãĻãããããŽæŦã¯åŧãįļãéĸéŖããĻããžãã ããã¯ããåŧˇãããäžįļã¨ããĻåŧˇãŋã ããã§ãã ããã¯č¯ããã¨ã§ãããč¨čĒã¯ãžãŖããå¤æ´ãããĻããžããã
åčĢ
įžå¨ãč°čĢã¯ãåŧˇãããŽäŊŋį¨ãĢå寞ããĻããžãã į§ã¯ããĒããŽãããĢããããčŋ°ãšããã¨æããžãīŧ
- 1ã¤įŽã¯ãã č¯ããã¨ã¨æĒããã¨ã¯ãåãĒãæčĻãŽåéĄã§ã ãã ããã¯įåŽã§ã¯ãããžããã JSLintãĩããŧããŽä¸į°ã¨ããĻãä¸įä¸ãŽäēēã
ããã¨ãŠãŧãĄããģãŧã¸ãåãåããžãã į§ã¯æčŋãåéĄãč§Ŗæąēãããã¨ããĻ2éąéãč˛ģãããäŧį¤žããæį´ãåãåããžããã 1ã¤ãŽå ´æã§ãįåˇãŽåãĢããããčĒ¤ãŖãĻčŋŊå ããããã¨ãå¤æããžããã åŊŧåĨŗã¯æŖãããããĢčĻãããŽã§čĒ°ãåŊŧåĨŗãčĻãžããã§ããããįĩæã¯č˛§åŧąã§ããã ããã§ãåŊŧãã¯į§ãĢJSLintãäŋŽæŖããĻãäģãŽäēēãåæ§ãŽåéĄãĢæŠãžãããĒããããĢã§ãããã¨å°ããžããã ãŠãããĻīŧ į§ã¯ãããéˇåš´ããŖãĻããžãã ããããŖãĻãJSLintãäŊŋį¨ããå ´åãããŽį¨ŽãŽåéĄã§2éąéãįĄé§ãĢãããã¨ã¯ãããžããã ãããĻãããã¯æčĻã§ã¯ãĒããäēåŽã§ãã
- åæŠčŊã¯éčĻãĒããŧãĢã§ã ã ããã¯įåŽã§ã¯ãããžããã ããããŽæŠčŊãŽä¸é¨ãäŊŋį¨ãããĢãããč¯ãããã°ãŠã ãäŊæã§ããžãã ãããĻãããããĒãã§ããč¯ãããã°ãŠã ãæ¸ããã¨ãã§ããã°ããããã¯ãããģãŠéčĻã§ã¯ãããžããã
- åæŠčŊãäŊŋį¨ãã樊åŠããããžã ã äģļåãå¤æ´ãããžããã į§ããĄã¯ãã¯ãããã°ãŠã ãæ¸ããããŽæč¯ãŽæšæŗãĢã¤ããĻ芹ããĻããžãããīŧ į§ããĄã¯äģãį§ããĄãŽæ¨ŠåŠãĢã¤ããĻ芹ããĻããžãã ããã§åŧæ°ãŽįĩããã§ãã ããããã¨ãæ¸ã樊åŠããããžãã éĸäŋãããžãã ã¨ãĻãä¸æãĢæ¸ããĒããã°ãĒããĒããã¨ãéčĻã§ãã
- 襨įžãŽčĒįąããžãã¯ãį§ã¯č¸čĄåŽļã§ãããæåžã§ã¯ãĒãæŧįŽåãŽå
é ãĢãģããŗããŗãįŊŽããã¨ã§čĒåã襨įžããžãã ãåŋ
čĻã§ãã čæ
Žäēé
ã¯åãã§ãã
- ããŧãšãããŧã¯ãŽåæ°ãæ¸ããåŋ
čĻããããžãã ãģã¨ããŠãŽæéãå°åˇããã¨äģŽåŽããžãã ãããĻãæ°åãŽããŧãšãããŧã¯ã§ããã°ãŠã ãæ§į¯ããæšæŗãčĻã¤ãããã¨ãã§ããã°ãã¯ãããĢåšįįãĢãĒããžãã ããããįļæŗã¯ãžãŖããéã§ãã æéãŽä¸ģãĒįĄé§ã¯įģå ´äēēįŠãŽãģããã§ã¯ãĒããæåãŽåŖ°ã§æˇąbyãčĻããã¨ã§ãīŧãį§ãŽįĨãį§ããããã¨ããĒãåããĒããŽããã ããã¯į§ããĄããģã¨ããŠãŽæéãč˛ģããå ´æã§ãã ããŧãšãããŧã¯ãŽåæ°ã10åãĢåĸããã¨ã¨ãŠãŧãåæ¸ã§ãããšããŧã ãæäžã§ããã°ãããã¯å¤§ããĒååŠãĢãĒããžãīŧæŽåŋĩãĒãããããŽãããĒãšããŧã ã¯ãããžããīŧã
- ãį§ãåąéēãĒæŠčŊãäŊŋį¨ããĻééããį¯ããã¨ãæŗåŽãããŽã¯inčžąã§ã ã ã ãééããį¯ãå¯čŊæ§ããããã¨ã¯įĨãŖãĻããžãããé常ãĢįįˇ´ããĻãããŽã§åŠãããžãã ããã§ãĒãã¨čãããã¨ã¯ãį§ãĢ寞ããinčžąã§ãããåäēēįãĒããŠãĻãã§ããã ããã§ã¯ããšãĻãæįĸēã§ãã
- ã ããããŽæŠčŊãč¨čĒãĢčŋŊå ãããįįąããããžã ãã ããã¯įĩļ寞ãĢįåŽã§ã¯ãããžããã įŠäēãč¨čĒãĢåéĄãããå¤ããŽįįąããããžãããããããŽãģã¨ããŠã¯æåšã§ã¯ãããžããã
ãã¨ãã°ãJavaScriptã¯ããã10æĨã§éįēãããŗåŽčŖ
ãããžããã ããã¯ãããã ãããĻããããčĄãŖãåĒį§ãĒįˇãããŦãŗããŗãģãĸã¤ã¯ã¯ã10æĨéãĢãããŖãĻããã¤ããŽééããį¯ããžããã ããããŽ1ã¤ã¯äēéį䞥æŧįŽåã§ãčĻį´ ãæ¯čŧããåãĢåå¤æãåŧˇåļããžããã ãããĢããčĒ¤č§Ŗãįããæˇˇäšąãæããžãã Brendan Ikeã¯ããĒããŦãŧãŋãŧãæŖããåŽčŖ
ãããĻããĒããŖããã¨ãčĒããžããã åŊæãäģãŽå¤ããŽč¨čĒīŧPHPãĒãŠīŧã§ãåãã¨ãŠãŧãįēįããĻããžããã ããŦãŗããŗã¯ãããäŋŽæŖããããŖãã ããããŖãĻãæ¨æēãŽäŊæĨãéå§ãããã¨ããåŊŧã¯äģãäŋŽæŖãčĄãã¨ãã ã¨å¤æããžããã åŊŧã¯ECMAãĢčĄãããããŽæ¯ãčãã¯ééãŖãĻãããæŖããããããã¨č¨ãŖãã ããããECMAã¯æåĻãããžããããåĻĨåæĄãæį¤ēããžãããã¤ãžããæŖããæŠčŊããããĒããĢįåŧæŧįŽåãå°å
Ĩãããã¨ã§ãã åæãĢããã§ãĢééãŖãããļã¤ãŗãäŊŋãå§ããäēēã
ãŽãããĢãč¨čĒãĢã¯äēéãŽåšŗįãæŽãŖãĻããžãã ããŽįĩæãæŖåŊãĒįįąãŽãĒããĒããŦãŧãŋãŧãããžãã
ããŦãŗããŗã¯ãããŽãããĒæŠčŊããčã§ãŽãˇã§ãããã¨åŧãã§ããžãīŧ ããããŦãŗ-čã§ãŽéæãŽãããŽéãŽæåéããŽįŋģč¨ŗ-į´įˇ¨ īŧã ãããĻãåŊŧã¯čĒ¤ãŖãĻããããJavaScriptãĢé
įŊŽããžããã ããããŽäŊŋį¨ã¯æ¨åĨ¨ãããžããã
ããããŖãĻãããã°ãŠããŗã°č¨čĒãŽįŽæ¨ã¯ãéįēč
ãã¨ãŠãŧãŽãĒãããã°ãŠã ãäŊæã§ãããããĢãããã¨ã§ãã
åĒããJavaScriptããã°ãŠã ãäŊæãããã¨ã¯ãé常ãĢčåŧąãĒč¨čĒã§ãããããåį´ãĢä¸å¯čŊã ã¨čããĻããžããã ããããåĒããJavaScriptããã°ãŠã ãæ¸ããã¨ã¯ä¸å¯čŊã§ããã ãã§ãĒããåŋ
čĻã§ã¯ãĒããã¨ãããããžããã ããŽãčåŧąæ§ããŽãããĢãJavaScriptã¯äģãŽããã°ãŠããŗã°č¨čĒãããčĻåžãåŋ
čĻã§ãã ãããĻãããĒãã¯æŦåŊãĢããžãããäŊããæ¸ããããĢãããĢåēåˇããåŋ
čĻããããžãã
ãããĢã¯2ã¤ãŽåšæããããžãã ãžããããã¯ä¸å¯fallæ§ãŽåšģæŗã§ãã įšãĢãčĨãããã°ãŠããŧã¯ãčĒåãŽãšããĢãé常ãĢįēéããĻãããŽã§ãéŠããšããã¨ãåŽčĄã§ããã¨äŋĄããĻããžãã įŦŦäēãĢãéãŽæãĄãŠãããŽãĒãįĄįãããããžããããã¯ãįšãĢäŊåš´ãæŠčŊããĒããŖããã¨ãéˇåš´čĄãŖãĻããåš´é
ãŽäēēãĢčĻãããžãã ããã2ã¤ãŽé常ãĢį°ãĒãčĻč§Ŗã¯ãåããã¨ãã¤ãžãåąéēé§ååéįēãĢã¤ãĒãããžãã ãããĻããã¯æĒãã§ãã
ãŊãããĻã§ãĸéįēãŽįŽĄįãããå°éŖãĢããããŽãŽ1ã¤ã¯ãč¨įģãŽč¤éãã§ãã įĨãŖãĻãããšããã¨ã2åãããžãã æéAã¯ããŗãŧããŽč¨čŋ°ãĢãããæéã§ãã į§ããĄã¯ãããæŦåŊãĢä¸ååãĢčŠäžĄããžã-æéAãæ¨åŽããæšæŗãŽčŗĒåãĢįããį§åĻã¯ãããžãããããããæéBãæ¨åŽããã¨įļæŗã¯ãããĢæĒåããžã-ãŗãŧããæŖããåäŊããããŽãĢãããæéã§ãã
æéBã¯0ã§ããåŋ
čĻããããžãã ããĒãããŗãŧããæ¸ã-ããã¯åäŊããã¯ãã§ãã ãã ããæéBã¯æéAãĢãĒããã¨ããããžããįĄéãĢãĒããã¨ããããžãã ããã¯ãįĩäēãããŊãããĻã§ãĸéįēããã¸ã§ã¯ããããããåäŊãéå§ããåãĢãŊãããĻã§ãĸãæåĻããå ´åãĢįēįããžãã
æéBãåĸãããĻæéAå
ãĢčĄããã¨ã¯ããšãĻééãŖãĻããžãã æéBããŧããĢæ¸ãããããĢããĻãã ããã
ES6ãŽæ°ããåŧˇãŋ
äģåš´6æãĢECMAįˇäŧãĢéäŋĄãããJavaScriptãĢã¯å¤ããŽčŋŊå ããããžãīŧ
ããããŽéŠæ°ã¯åŽéãĢčĒč¨ŧæįļããįĩãĻãæ°ããäģæ§ãŽä¸é¨ãĢãĒããžãã-ECMAScript 2015 Language Specification-Edã īŧã
ããã¤ããŽæ°ããåŧˇãŋããããã¨ãå ąåã§ããĻããããã§ãã ãããĻäģæĨãããããããĒãã¨å
ąæãããã¨æããžãã
æĢå°žå帰
æåãŽæč¯ãŽæšæŗã¯ãæĢå°žå帰ã¨åŧã°ããæ§é ã§ãã éĸæ°ãæåžãĢåŽčĄããå ´åãéĸæ°ãŽåŧãŗåēããŽįĩæīŧåĨãŽéĸæ°ãŽåŧãŗåēãã§ããå¯čŊæ§ããããžãīŧãčŋããžããåŧãŗåēããŽéãˇãŧãąãŗãšãäŊæããäģŖãããĢããŗãŗãã¤ãŠãŧã¯ã¸ãŖãŗããįæããžãã ããããŖãĻããŗãŧãã¯å°ãéãåäŊããžãããããã¯į´ æ´ããããã¨ã§ãã ãããããããĢč¯ããã¨-ä¸é¨ãŽãĸããĢã§ã¯ãããã¯ãĄãĸãĒæļč˛ģã大åš
ãĢåæ¸ããžãã ããããŖãĻããžãŖããæ°ããã¯ãŠãšãŽãĸãĢã´ãĒãēã ãäŊŋį¨ã§ããžãã
ãã¨ãã°ãįļįļčģĸéãšãŋã¤ãĢããäģĨåãŽč¨čĒã§ã¯åŽčŖ
ã§ããĒããŖãäģãŽį¨ŽéĄãŽããã°ãŠããŗã°ãäŊŋį¨ã§ããžãã ããããŖãĻãããŽéĸæ°ãäŊŋį¨ããã¨ãJavaScriptã¯æįĩįãĢåŽéãŽéĸæ°åããã°ãŠããŗã°č¨čĒãĢãĒããžããããã¯į´ æ´ããããã¨ã§ãã
įįĨč¨åˇ
įįĨč¨åˇæŧįŽåãååžããžããã ããŠãĄãŧãŋãžãã¯åŧæ°ãŽãĒãšããĢå
Ĩããã¨ãå¯å¤æ°ãŽåŧæ°ãåĻįã§ããžããããã¯æŦåŊãĢį´ æ´ããããã¨ã§ãã
ãããĢã¯ããĢãŦãŧéĸæ°ãŽ2ã¤ãŽããŧã¸ã§ãŗããããžãã 1ã¤įŽã¯ES6ãĢæēæ ããĻããžãã
function curry(func, ...first) { return function (...second) { return func(...first, ...second); }; }
2ã¤įŽã¯ãäģĨåãŽåŽčŖ
æšæŗã§ãã
function curry(func) { var slice = Array.prototype.slice, args = slice.call(arguments, 1); return function () { return func.apply(null, args.concat(slice.call(arguments, 0))); }; }
ããã¯ããšãĻã˛ãŠããŽã§ã2įĒįŽãŽããŧã¸ã§ãŗã§æŖįĸēãĢäŊãčĩˇããããĢã¤ããĻã¯čĒŦæããžããã å寞ãĢãæåã¯ããĒãåįįãĒãããĢčĻããžãīŧį§ããĄããã¤ãŗããčĻãã¨ãããĒããŠãã§ãīŧããã§ã¯ããĒããæãã ãå¤ããŽåŧæ°ãæã¤ãã¨ãã§ããžãīŧã ãããĻããã¯į´ æ´ãããã
ããŽéŠæ°ãĢãããäģĨåã¯ã§ããĒããŖããã¨ãåŽčĄã§ããĒããĒããžããã ããããå¯å¤æ°ãŽåŧæ°ãåĻįããåŋ
čĻãããå ´åãããŽãĸãããŧãã¯ã¯ãããĢåĒããĻããžãã
ãĸã¸ãĨãŧãĢ
ããã§ãĸã¸ãĨãŧãĢãã§ããžããã į°ãĒãããĄã¤ãĢããå¤ãã¤ãŗããŧããããŗã¨ã¯ãšããŧãã§ããžãã ãããĻãæįĩįãĢč¨čĒãĩããŧãããããžãã äģĨåã¯ããããã¯ããšãĻã°ããŧããĢå¤æ°ãéããĻåŽčŖ
ãããĻããžããããã˛ãŠãããŽã§ããã
ããã§æŖããåŽčĄã§ããžãã į´ æ´ãããã¨æããĒãå ´åã¯ãäģĨåãŽåēæēãĢåžãŖãĻåããã¨ãčŠĻããĻãã ããã ããããES6ãäŊŋį¨ããã¨ãããã¯ãĒãã§åŽå
¨ãĢéåæãŽč¨čĒã§æįĩįãĢãããčĄããã¨ãã§ããžãã
åŽæ°
å¤æ°ãåŽįžŠãã2ã¤ãŽæ°ããæšæŗããããžããletã¨constã§ããããã¯ãšãŗãŧããŽåéĄãč§Ŗæąēããžãã č¯ãããã°ãŠã ã§ã¯ããããã¯ãŽãšãŗãŧãã¯åŋ
čĻãĒããã¨ãããããžãã ããããäģĨåã¯JavaScriptæ§æããããã¯ãŽãšãŗãŧããŽãããĢčĻããžããīŧããŽæ§ææ§ævarãäŊŋį¨īŧããããã§ã¯ãĒããŖããŽã§ãäēēã
ãæˇˇäšąãããžããã æˇˇäšąãåå ã§ã¨ãŠãŧãįēįããããŗãĢã Letã¨Constã¯ããããåéŋã§ãããããĢããžãã
įš°ãčŋããžãããæ°ããããļã¤ãŗã§ã¯ãäģĨåã¯äŊæã§ããĒããŖãããã°ãŠã ãäŊæã§ããžããã ãããäģã§ã¯ããŗãŧãã¯Javaããã°ãŠããæŠãžããžãããããã¯č¯ããã¨ã§ãã
åįˇ¨
åĨãŽæ§æä¸ãŽããŖãŗããŖãŧã§ãããĒãšããŠããããžãã ãžããäģĨåã¯ã§ããĒããŖããã¨ãåŽčĄãããã¨ãã§ããžããã ããããããã¤ããŽįšã§ãæ°ããæ§æã¯ã¯ãããĢ襨įžåããããžãã
ãã¨ãã°ããããĢãĒãã¸ã§ã¯ãããããžãã ãããĻããĒãã¸ã§ã¯ããŽãããããŖããããããŽå¤æ°ãåæåããĻãããã¤ããŽå¤æ°ãäŊæãããã¨æããžãã
let {that, other} = some_object; let that = some_object.that, other = some_object.other;
ããã¯é常ãĢåį´åãããäžã§ãã åžã§ããããäŊŋį¨ããæšæŗãŽåĨãŽäžãį¤ēããžãã
åŧąããã
WeakMapãã§ããžããã WeakMapã¯ããĒãã¸ã§ã¯ããæŠčŊããã¯ããŽæšæŗã§æŠčŊããžãã JavaScriptãĒãã¸ã§ã¯ãã§ã¯ãããŧã¯æååã§ãããããã¯ééãã§ãã äģŖãããĢããã¤ããŽå¤ãäŊŋį¨ããæšãč¯ãã§ãããã ãããããããĢããããããããããã¯įˇã§ãã WeakMapã¯ããŽåéĄãč§Ŗæąēããžãã ããã§ã¯ãäģģæãŽå¤ãåãããããããŧã¨ããĻäŊŋį¨ã§ããžãã
æŽåŋĩãĒãããããŽãã¨ãčŋŊå ããåŋ
čĻããããč¨čĒãé常ãĢč¤éãĢãĒããžããã ãããĢãããã°ãŠããŗã°č¨čĒã§äŊŋį¨ãããææĒãŽååīŧ
weak-weak īŧã¨åŧãŗãžããã čĒ°ãåŊŧããŽããã°ãŠã ãĢäŊãåŧąãããŽãå
ĨããããĒãã ããããããŽč¨č¨ã¯é常ãĢããžãæŠčŊããžãã
WeakMapãäŊŋį¨ããã¨ãäģĨåãŽč¨čĒã§ã¯äŊæã§ããĒããŖãããã°ãŠã ãäŊæã§ããžãã
ããŋãŧãŗæåå
æåžãĢããĄãŦãšãããŧã¯ãĒããŠãĢã¨åŧã°ããããŽã§ãīŧč¨čĒã§ã¯ããŗããŦãŧãæååã¨åŧã°ããžãããããŽååã¯åĨŊãã§ã¯ãããžããããäģĨåã¯æēãĒããŠãĢã¨åŧã°ãããããĢæˇˇäšąããĻããžããīŧã
ããã¯ãES6ãŽč¤æ°ãŽčĄãĢä¸č´ããæŖčĻ襨įžã§ãã ããŽæŖčĻ襨įžãåŽŖč¨ãããŽã¯ã˛ãŠãã§ãã ãã¤ãããŖã¨č¯ããã¨ããããã¨æããžãã ããããES6ã§ã¯ãããäģĨä¸ãŽäģŖæŋææŽĩã¯ãããžããã
ããããŖãĻãããšãĻãŽãšããŧãšãåé¤ããåžãæååãåãåãããããæŖčĻ襨įžãĢå¤æããéĸæ°ããããžãã ããŽãããĒéĸæ°ãäŊŋį¨ããã¨ãäģģæãŽåŧãåããã¨ãã§ããžãããããšãĻãããŧããĢæ¸ãčžŧããã¨ã¯ã§ããžããããåŋ
čĻãĒįŠēãŽãšããŧãšããããĢå
ĨããĻãčĻį´ ã¨ããããŽį¸äēéĸäŋãįĸēčĒããžãã įĩæã¯åããĢãĒããžãã
ããŽč¨č¨ãĢã¯1ã¤ãŽæŦ įšããããžãããŗãŗãã¤ãŠã¯æŖčĻ襨įžãæååã¨ããĻæąããããæ¤č¨ŧãåŽčĄã§ããžããã æ¤č¨ŧã¯ããŗãŗãšããŠã¯ãŋãåŧãŗåēããžã§čĄãããžããã ãããããŦãŗãŧããŽåãŽããŧã¸ã§ãŗã§ã¯ãããšãĻãããŧããĢæˇˇå¨ããĻããã¨ããäēåŽãŽãããĢãé大ãĒã¨ãŠãŧããŗãŗãã¤ãŠãŧãį°ĄåãĢããæãããã¨ããããžããã ããããŖãĻãį§ããĄã¯ããŽå¤æã§å¤ããå¤ąãã¨ã¯æããžããã
ã¨ããã§ãæŖčĻ襨įžãé ģįšãĢäŊŋį¨ããå ´åã¯ãRegulExã¨åŧã°ããããŧãĢãåŧˇããå§ãããžãã ããŽä¸ãĢæŖčĻ襨įžãå
Ĩããã¨ããã¤ãĸã°ãŠã ãæ§į¯ãããå
é¨ã§äŊãčĩˇããŖãĻããããæŖįĸēãĢčĻããã¨ãã§ããžãã æŖčĻ襨įžãæ¸ãããŗãĢäŊŋį¨ããžãã
įĸå°éĸæ°
ES6ã§åžããããã1ã¤ãŽæ°ããæŠčŊã¯ãåŋåãŽįĸå°éĸæ°ã§ãã å¤čĻŗãŽč¯ãåæŠã¯ãéĸæ°åãå
Ĩåããã¨ããĢ大éãŽãããšããĢã¤ããĻä¸æēãč¨ãäēēããããã¨ã§ãã ã ããį§ã¯ããŽãããĒãã¨ãčŋŊå ããžããã ããã¯ãæŦčŗĒįãĢéĸæ°ãŽįãæåŽã§ãã įĩæã¨ããĻãåŧæ°ãåããæåŽããããããããŖãããŽå¤ãæã¤ãĒãã¸ã§ã¯ããčŋãéĸæ°ãååžããžãã
ããã¯æŖ常ãĢæŠčŊããĒããã¨ãé¤ããĻãããšãĻãé čĒŋã§ãã ããŽéĸæ°ãåŧãŗåēãã¨ãã¨ãŠãŧããããããå¤ãŽäģŖãããĢundefinedãčŋããžãã ããããŖãĻãããã¯ãæãĢã¯č¯ããã¨ãããã°ãããã§ãĒããã¨ããããéįįãĒããŽãŽ1ã¤ã§ãã 常ãĢæŠčŊããĻããã°į´ æ´ããããã¨ã§ãããããã§ã¯ãããžããã
ES6ãŽæŦ įš
ããŽéˇæãĢå ããĻãES6ãĢã¯įį´ãĢč¨ãŖãĻæĒãčĻį´ ããããžãã
ã¯ãŠãš
ææĒãŽã¤ãããŧãˇã§ãŗã¯ã¯ãŠãšã§ãã ããŽã¯ãŠãšã¯æãäēēæ°ãŽããæ°æŠčŊã§ããããģã¨ããŠãŽãĒã¯ã¨ãšãã¯JavaScriptã§č¨čŋ°ããåŋ
čĻãŽããJavaããã°ãŠããŧãããŽããŽã§ãããåŊŧãã¯æŦåŊãĢãããĢæŋæããĻããžãã į§ã¯Javaã§æ¸ããããŽã§ãããJavaScriptãĢã¯ãŋãšã¯ã¨ãéããããŽã§ãåŊŧãã¯ãããããĒããã°ãĒããžããã åŊŧãã¯ååĻįŋããããĒããŽã§ãæ°ããæ§æã¯åŊŧããŽäēēįãį°Ąį´ åããžãã
ããšãĻã¯åéĄãããžããããããŽæ°ããæ§æãĢäžåããĻãããããč¨čĒãŽäģįĩãŋãįč§Ŗãããã¨ã¯ã§ããžããã ãããĻãåŊŧãã¯ããŽč¨čĒãåšæįãĢäŊŋį¨ããæšæŗãæąēããĻįč§ŖããžããããåŊŧãã¯įč§Ŗããã¨æããžãã åŊŧãã¯ãåŊŧãããŠããģãŠä¸åš¸ã§ããããįĨãããĢãæ¸ãįļããžãã ããã¯trapã§ãã
Object.Create
æ°ããįĨčã¨ES6ãŽéŠæ°ãåæ ããåŋ
čĻæ§ãčæ
ŽããĻãStrengthsãĢæ¸ãããå
厚ãæšč¨ããĻããžãã ãåŧˇãŋããæ¸ããã¨ããã¯ãŠãšãŽäģŖãããĢobject.createãäŊŋį¨ãããã¨ããå§ãããžããã
åŽéãäŊŋį¨ã§ãããããĢobject.createãč¨čĒãĢčŋŊå ãããŽã¯į§ã§ããã ããĒãããžããããžããã ããããobject.createãŽäŊŋį¨ãåæĸãããã¨ãĢæ°äģããã¨ããį§ã¯ãŠããģãŠéŠããžãããã ãããĢčĒåã§čŋŊå ããžããããäŊŋį¨ããžããã ãããĻãããŽįįąã¯į§ããããäŊŋããŽãããããã¨ã§ãã
ãã
2007åš´ãĢADSafeã¨åŧã°ããããã¸ã§ã¯ããäŊæããããããããŽäŊŋį¨ãä¸æĸããžããã åŊæãFacebookãŽfbjsãCaja GoogleãMicrosoftãŽWeb SandboxãĒãŠãããã¤ããŽį įŠļã°ãĢãŧããããããããĢãADSafeãĒãŠãŽããã¸ã§ã¯ãããããžããã JavaScriptãåŽå
¨ãĒč¨čĒãĢããĻããĩãŧãããŧããŖãŽãŗãŧãããĸããĒãąãŧãˇã§ãŗãĢčŋŊå ãããģããĨãĒããŖãŽåéĄãįēįããĒããããĢããæšæŗãčĻã¤ãããã¨ããžããã JavaScriptã§ã¯ãããã¯é常ãĢéŖãããŋãšã¯ã§ãããã¨ãå¤æããžããã
ãããč§ŖæąēãããŽãéŖãããĒããã¨ãŽ1ã¤ãããã§ãã ãĄãŊãããĢãããããå ´åããĒãã¸ã§ã¯ããŽã¤ããŗããĒãšããĢãã¤ãŗãããžãīŧããã¯éŠåã§åŋ
čĻã§ãīŧã ãã ããéĸæ°ã¨åããĄãŊãããåŧãŗåēãã¨ãã°ããŧããĢãĒãã¸ã§ã¯ããĢãã¤ãŗãããããģããĨãĒããŖãĢåŽå
¨ãĢéåããžãã ãããĢ寞åĻããæšæŗã¯īŧ
ãģã¨ããŠãŽããã¸ã§ã¯ãã¯ããģããĨãĒããŖãŽåéĄãé˛ããããĢãJavaScriptãå¤ããŽãŠãŗãŋã¤ã ãã§ãã¯ã¨å¯žčŠąãåããJavaScriptãĢå¤æãããŗãŗãã¤ãŠã§ããŽåéĄãĢ寞åĻããĻããžãã
ADSafeã§ãŽį§ãŽãĸãããŧãã¯ããŖã¨į°Ąåã§ããã į§ã¯ãĄãããŠãããéæŗãĢãããããäŊŋį¨ãããĻããããã°ãŠã ãæžæŖããããäŋããžããã åäŊããžãã å¯ä¸ãŽåéĄã¯ãčĒ°ãããããäŊŋį¨ãããããããã°ãŠã ãŽå¤§é¨åãæžæŖããĒããã°ãĒããĒããã¨ã§ãã
ããããį§ãŽäģŽčĒŦã§ã¯ããããč¨čĒããåé¤ããĻããåĒããããã°ãŠã ãäŊæãããŽãĢååãĒéĸæ°åããã°ãŠããŗã°č¨čĒãæŽããã¨ãĢãĒããžãã ãããããšããããããĢãį§ã¯īŧãããĒãã§īŧåļéãĒãã§JavaScriptã§ãæ¸ãå§ããžããã ãããĻãį§ã¯ãããæãããĢãããå°ãĒãå´åã§ããč¯ãããã°ãŠã ãæ¸ãå§ãããã¨ãĢé常ãĢéŠããžããã ã¨ãĻãããã č¨ããžã§ããĒãããããč¨čĒčĒäŊãĢåå¨ãããã¨ãå°éŖãĒå ´åãã¤ãžãčąčĒã§ãŗããĨããąãŧãˇã§ãŗãã¨ãå ´åãč¨čĒãŽæ§į¯ãæåŗãããŽããäģŖåčŠãæåŗãããŽããäēåãĢįĨããã¨ã¯ã§ããžããã ããã¯ããĒãããĒãããŧã§ãã
ããĢ/æĒåŽįžŠ
nullãŽäŊŋį¨ãåæĸããžããã JavaScriptãĢã¯ãnullã¨undefinedãŽ2ã¤ãŽæå°å¤ããããžãã ä¸é¨ãŽč¨čĒã§ã¯ããããäŊŋį¨ããšãã§ã¯ãĒãã¨čããããĻããžãã JavaScriptã¯ãããŽãããĒå¤ãč¤æ°æã¤å¯ä¸ãŽč¨čĒã§ãã ããããä¸åēĻãĢ2ã¤æã¤ãŽã¯æãã§ãããã¨ã¯ééããããžããã
ä¸é¨ãŽããŦãŧã ã¯ãŧã¯ã¯ãããããäē¤æå¯čŊã¨ããĻæąããžãããããã§ã¯ãããžããã įļæŗãĢåŋããĻãããŽããĄãŽ1ã¤ã ããäŊŋį¨ããåŋ
čĻããããžãã ãããäŊŋį¨ãããŽã¯č¨čĒčĒäŊã§ãããããundefinedãäŊŋį¨ããžããããã¨ãã°ãæŦ čŊããĻãããããããŖãĢãĸã¯ãģãšããã¨ãundefinedãĢãĒããžãã
ä¸åŽãŽå¤ã¯ãåŽå
¨ãĢééãŖããŋã¤ããŽæŦ čŊãĒãã¸ã§ã¯ããŽåéĄãŽå
¨į¯å˛ãåŧãčĩˇãããžãã ãããES6ã§äŋŽæŖããããã¨ãæåž
ããĻããžããããããã¯čĩˇãããžããã§ããã ãããã常ãĢããã§ãããã ãã ããnullãäŊŋį¨ããĻããĒãå ´åãããŽåéĄã¯įēįããžããã ãžããčĒ¤ãŖãå¤ãŽäŊŋį¨ãåæĸããJavaScriptãĢåå¨ãããã¨čĒäŊãæĒãčãã ã¨å¤æããžããã
ããŽãĸã¤ããĸã¯ãã¨ãã¨CãĢįąæĨããCã¯0ãnoãfalseããããŗããŽäģãŽéĄäŧŧå¤ã襨ããããĢäŊŋį¨ããžãã JavaScriptã¯åããã¨ãčŠĻãŋãžããã ããããããã¯æˇˇäšąãæããžãã
ãŽãããĢ
forãŽäŊŋį¨ãåæĸããžããã ES5ã§ã¯ãé
åãæäŊãããããŽæ°ããä¸éŖãŽãĄãŊãããå°å
Ĩããžãã-ãããããããããĒãŠãŽãããĢãããããŽããŧãĢãäŊŋį¨ããžãã é
åãããããããåĻįããåŋ
čĻãããå ´åãããããŽæšæŗãŽãããããäŊŋį¨ããžãã ãããĻãããããäžŋåŠãĒæšæŗã§įĩãŋåããããã¨ãã§ããžãã ããã¯æŦåŊãĢ襨įžåčąãã§ãã
ãããããĢã¤ããĻ
į§ã¯ãããããĢäŊŋį¨ããžããã ES5ã§ã¯ããĒãã¸ã§ã¯ã.keysīŧãĒãã¸ã§ã¯ãīŧãååžããžããã ããŽæ§é ã¯ãæååãŽį´ æ´ãããé
åãæäžããžãã ãžããããããŋã¤ããã§ãŧãŗãããŽããŽãåĢãžããĻããĒããããįĩæãããŖãĢãŋãĒãŗã°ããåŋ
čĻã¯ãããžããã ããŽæšæŗã§é
åãååžãããããããĢ寞ããĻåŽčĄã§ãããã¨ã¯é常ãĢį´ æ´ããããã¨ã§ããããã¯æŦåŊãĢ襨įžåčąããĒæšæŗã§ãã
åãĢãį§ã¯é常ãŽããŧãĢå帰ãES6ãĢįģå ´ãããã¨ãč¨åããžããã ãããĻãäģåēĻã¯ãĢãŧãīŧįšãĢwhileãšããŧããĄãŗãīŧãŽäŊŋį¨ãåŽå
¨ãĢåæĸããžããå帰éĸæ°ãŽãŋãäŊŋį¨ããžãã
ãã¨ãã°ãå帰éĸæ°ã§ãã æĒåŽįžŠãčŋããžã§ãããŽéĸæ°ãåŧãŗåēããžãã ãŗãŧããŽæåãŽããŧã¸ã§ãŗã¯ãwhileãĢãŧããäŊŋį¨ããĻč¨čŋ°ãããĻããžãã
function repeat(func) { while (func() !== undefined) { } }
2įĒįŽãŽããŧã¸ã§ãŗã¯ãæĢå°žå帰ãäŊŋį¨ããĻč¨čŋ°ãããĻããžãã
function repeat(func) { if (func() !== undefined) { return repeat(func); } }
ES6ã§ã¯ãããã2ã¤ãŽæšæŗã¯åãéåēĻã§åäŊãããžãŖããåãéãŽãĄãĸãĒãæļč˛ģããžãã ããããŖãĻããĢãŧããĢã¯å帰ãããåŠįšã¯ãããžããã ããã¯į´ æ´ãããã
æŦĄä¸äģŖãŽč¨čĒ
æŦĄä¸äģŖãŽããã°ãŠããŗã°č¨čĒãĢã¤ããĻå¤ããŽãã¨ãčããžããã åŊŧã¯ãŠãŽãããĢãĒããžããīŧ JavaScriptãæåžãŽããã°ãŠããŗã°č¨čĒã§ãããã¨ãå¤æããã¨é常ãĢæ˛ãããŽã§ãããã¯ããããJavaScriptãįŊŽãæããč¨čĒãĢãĒãã¯ãã§ãã čããããĒããŖãã å°ãĒãã¨ãåäžããĄãĢã¨ãŖãĻãä¸įãããč¯ãå ´æãĢããĒããã°ãĒããžãããīŧ
ããŽč¨čĒããŠãŽãããĢãĒãããčããĻããžããã ãŠãŽãããĒãããããŖãåŋ
čĻã§ããīŧ åŊŧã¯ãŠãŽãããĒåéĄãč§Ŗæąēããžããīŧ åŊŧãįžããã¨ããĢåŊŧããŠãŽãããĢčĒčãããŽã§ããããīŧ
į§ãįĸēäŋĄããĻãããã¨ãŽ1ã¤ã¯ãåŊŧãæįĩįãĢįžããã¨ããæã
ã¯åŊŧãæåĻããã§ãããã ãããĻããŽįįąã¯ãããã°ãŠããŧãææ
įã§éåįįãĒį°å¸¸ãĒäēēã ããã§ãã
ããã¯ããã§ã¯ãĒãã¨čããĻããžãã į§ããĄã¯ãŗãŗããĨãŧãŋãŧãŽä¸įã§äēēã
ãŽå¤§äŊŋãŽåŊšå˛ãæãããĻããããŗãŗããĨãŧãŋãŧã¯åŽå
¨ãĢåįįã ããã§ãã ããããŖãĻãį§ããĄčĒčēĢãåįįã§ããã¨äģŽåŽããžãã į§ããĄãŽå¤ãã¯į¤žäŧįãšããĢãå¤ąããžããããä¸åįæ§ã¨ææ
æ§ã¯æļããĻããžããã ããŽčĢæãčŖäģããč¨ŧæ ãčĻãĻãŋãžãããã
- éĢãŦããĢãŽč¨čĒãč¯ããĸã¤ããĸã¨ããĻčĒčãããĢã¯ã1ä¸äģŖããããžããã Fortranãå¤ããŽãĸãģãŗããŠãŧč¨čĒãĢįģå ´ããã¨ããéįēč
īŧåŊæã¯ããšãĻãĸãģãŗããŠãŧããã°ãŠããŧã§ããīŧãFortranã¸ãŽåãæŋããæåĻããžããã Fortranã¯ããˇãŗã¨ãŽį¸äēäŊį¨ãŽåļåžĄãåĨĒãåãŖãããã訹å¯ã§ããžããã§ããã į§ģčĄã¯åŊŧããŽäēēįãããč¯ãããã ããããåŊŧãã¯ãããæžæŖããã
- čĄããŽã¯æĒãčãã ã¨åæãããŽãĢå
¨ä¸äģŖããããŖãã äŊååš´ããŽéãgo toãäŊŋį¨ããããŠãããææ
įãĢč°čĢããĻããžããã ãããĻãé常ãĢčŗĸãäēēã
ãããŽæˇąãčãæãããč°čĢã¨ããããã¯į§ãŽčĄ¨įžæšæŗã§ããããåšįãåŋ
čĻã§ããããį§ã¯æģãĢãžãããį§ã¯ãããwillããžãããã¨ãããšãŋã¤ãĢãŽæãŽä¸Ąæšãä¸ããããžããã ããããŽč°čĢã¯ããšãĻåŽå
¨ãĢééãŖãĻãããã¨ãå¤æããžããã
- ãĒãã¸ã§ã¯ããč¯ããĸã¤ããĸã§ãããã¨ãĢåæãããĢã¯ä¸äģŖãããããžããã 1967åš´ãSimulaã¨åŧã°ããč¨čĒãããĢãĻã§ãŧãĢįģå ´ããžããã į§ãįĨãéããããŽč¨čĒãĢã¯éčĻãĒãĸã¤ããĸãåĢãžããĻããã¨čĒãããŽã¯ãä¸įã§ããŖã1äēēããĻãŋ大åĻīŧãĸãŠããåˇīŧãŽAlana Kayã ãã§ããã äģãŽãŋããĒã¯ãããéããžããã åŊŧã¯ãSimulaãĢįģå ´ãããĒãã¸ã§ã¯ããé常ãĢ襨įžåããããåäžåããŽããã°ãŠããŗã°č¨čĒãéįēã§ããã¨čããžããã ãããĻãåäžããĄã¯ããŽããŠãã¤ã ãäŊŋį¨ããĻį´ æ´ãããããã°ãŠã ãæ¸ããã¨ãã§ããžãã ããŽãããåŊŧã¯ããŽč¨čĒãŽååŧˇãå§ãããģãŧ10åš´ãããĻčĒåãŽč¨čĒãéįēããæšåããžããã 1980åš´ãĢããããå
Ŧéãããžããã ãããĻãããã¯å˛ä¸æéĢãŽéįēãããããã°ãŠããŗã°č¨čĒ-C ++ã§ããã Alan Kayã¯SimulaãŽãĸã¤ããĸãåãå
Ĩããããžãįč§ŖããĻããžããã§ããããCãĢįŋģč¨ŗããžããã
ããŽãããæĨįãĢã¯é¸æčĸããããžãããSimulaãžãã¯C ++ãĢåžããã¨ãã§ããžããã æįĩįãĒæąēåŽã¯ãããã°ãŠããŗã°ãŽãããĢãĒãã¸ã§ã¯ããäŊã§ããããåēæŦįãĢįč§ŖããĻããĒãäēēã
ãĢããŖãĻčĄãããžããã ããããåŊŧãã¯C ++ãé¸æããžããããĒããĒããč¨čĒãäŊŋãå§ãããããĢãĒãã¸ã§ã¯ãæåããã°ãŠããŗã°ãįč§Ŗããåŋ
čĻããĒãããã§ãã ããäģĨæĨããģãŧããšãĻãŽč¨čĒã§ãSimulaãããC ++ããå¤ããåããĻããžããã ãããĻãį§ããĄã¯ãžã ééãŖãĻããžãã
- ãããĻæåžãĢã ãŠã ããč¯ããĸã¤ããĸã§ãããã¨ãĢåæãããŽãĢ2ä¸äģŖããããžããã ãŠã ãã¯ã70åš´äģŖååãĢMITã§Squeakã¨åŧã°ããč¨čĒã§įģå ´ããžããã ãããĻãæĨįã¯ãããĢå
¨ãæŗ¨æãæããžããã§ããã æįĩįãĢãŠã ããä¸ģæĩãĢãããŽãĢã2ä¸äģŖã§ã¯ãĒã4ä¸äģŖããããžããã æéãããããããĻããĸã¤ããĸãŽå¤ąæãŽč¨ŧæ ã ã¨čããäēēãããžããã ãããããŠã ããäŊŋį¨ããéĸæ°åããã°ãŠããŗã°ã¯ãäģæĨæąãŖãĻããéåæãˇãšãã ãåæŖãˇãšãã ãæäŊããã¨ããĢé常ãĢåšæįã§ãããã¨ãããããžããã ããŽãĸã¤ããĸãåãå
ĨããæåãŽč¨čĒã¯JavaScriptã§ãã ããŽåžããŠã ããPythonã¨RubyããããĻæįĩįãĢã¯CīŧãĢįģå ´ããžããã å°ãåãã¤ããĢJavaã§ã ããããJavaScriptãæåã§ããã
äŊããããéˇãéįļããĻãããŽã¯ãåŋãå¤ãããã¨ãã§ããĒãããã§ãã į§ããĄã¯ãæ°ããč¯ããĸã¤ããĸãŽé常ãĢå¤ããŽãĻãŧãļãŧãį˛åžãããããäŊŋãįļãããã¨ãã§ãããããĢãĒãåãĢãä¸äģŖãåŧéãããæģãŦãŽãåž
ããĒããã°ãĒããžããã
ãĢčĄãŖãã¨ããĢčĻããĻããžãã åŊŧãŽå¨ããŽč°čĢã¯äŊåš´ã襰ããžããã§ããããããĻįĒįļããã¯éããĢãĒããžããã į§ããĄã¯äģåŊŧãåãé¤ããã¨ãã§ããžããīŧ ã¯ããį§ããĄã¯åŊŧãæŽããžããã čĒ°ããčĄããŽãĢčĻããã§ããžããīŧ ããšãĻãŽį´äēã¯įĄæåŗã§ãããã¨ãå¤æããããŠãã¤ã ãˇãããčĩˇãããžããã
äēēã
ãããŽããŠãã¤ã ãåãããŽã¯æŦåŊãĢéŖããã§ãã go toãŽãšããŧãĒãŧã¯ã1ã¤ãŽč¨č¨ãåãé¤ããããã°ãŠã ãŽæ§é ãå¤ããã ãã§ãã go toãŽæŦ åĻãĢããããã°ãŠããŗã°ã厚æãĢãĒããã¨ãå¤æããžããã
ã ãããããį§ã¯æŦĄãŽããã°ãŠããŗã°č¨čĒãããããæåĻãããã¨äŋĄããĻããžãã
č¨čĒåéĄãĢã¤ããĻ
ããã°ãŠããŗã°č¨čĒããŠãŽãããĢåéĄããããčããĻãã ããã č¨čĒããˇãšãã ã¨ãĸããĒãąãŧãˇã§ãŗãŽ2ã¤ãŽä¸ģčĻãģãããĢåããžãã
ãˇãšãã č¨čĒã¯ããĄãĸãĒãĸããąãŧãŋããˇãšãã ãŗãĸãããã¤ãšããŠã¤ããč¨čŋ°ãããããĢäŊŋį¨ãããžã-ãããã¯é常ãĢäŊãŦããĢãŽč¨čĒã§ãã ããäģĨå¤ã¯ããšãĻãĸããĒãąãŧãˇã§ãŗč¨čĒã§äŊæããåŋ
čĻããããžãã
ããããJavaãŽæ大ãŽåéĄã¯ãJavaãŽäŊæč
ãããŽé¨éãŽãŠãĄãå´ãĢãĒãããããæąēåŽã§ããĒããŖããã¨ã§ãã ããŽãããJavaã¯ä¸ĄæšãŽãŋãšã¯ããĩããĢãããã¨ããĻããžãã
严æšãŽãĢãã´ãĒãĢæ°ããč¨čĒãåŋ
čĻã§ãã ãã¨ãã°ã60åš´äģŖãĢįģå ´ããCã¯ãäģæĨã§ãä¸ģčĻãĒãˇãšãã č¨čĒã§ãã ããããį§ãŽäģäēã¯åŋį¨č¨čĒãĢįĻįšãåŊãĻãĻããžã-į§ããĄãŽãģã¨ããŠã寞åĻãããŽã¯ãããã§ãã
åŋį¨č¨čĒã¯ã2ã¤ãŽã°ãĢãŧããĢåãããã¨ãã§ããžããå¤å
¸æ´žīŧãģã¨ããŠããšãĻãŽč¨čĒãåĢãīŧã¨ããããŋã¤ãããã°ãŠããŗã°į¨ãŽč¨čĒã°ãĢãŧãīŧJavaScriptãåĢãīŧã§ãã
ãããĻãJavaScriptã¯æŖããæšåãé¸ãã ã¨æããžãã å¤ããŽæšå¤ãåŧãčĩˇãããĻããJavaScriptãĢã¯éŠæ°ãåĢãžããĻããžãã
ãˇãšãã ãč¨č¨ããå¤å
¸įãĒåĻæ ĄãŽč¨čĒã§ããã°ãŠã ãäŊæããå ´åããĒãã¸ã§ã¯ããŽåéĄãčĄãåŋ
čĻããããžãã ãˇãšãã ãŽããšãĻãŽãĒãã¸ã§ã¯ããåæããĻãããããäŊã§æ§æãããĻããããįč§ŖããåéĄæŗãåŽčĄããã¯ãŠãšãį¸äēãĢãŠãŽãããĢéĸéŖãããããŠãŽãããĢãäŊãåŽčŖ
ããããįĨãåŋ
čĻããããžãã ããã¯ããšãĻé常ãĢč¤éã§ãããĒããĒããããã¸ã§ã¯ããŽéå§æãĢæãé ģįšãĢčĄãããããã§ãã ãˇãšãã ããŠãŽãããĢæŠčŊããããĢã¤ããĻãŽæäŊéãŽįč§Ŗãããæįšã§ã ããããŖãĻã常ãĢééãŖãåéĄæŗãååžããžãã ããŽãããčĒ¤ãŖãĻé¸æããããĒãã¸ã§ã¯ããĢãĒãŖãĻããžããžãã ãããĻäģããããĒãã¯åŊŧãã¨æĻãŖãĻããžãã ããã ãã§ã¯ãåéĄãæŖããč§Ŗæąēãããã¨ã¯ã§ããžããã å¤éįļæŋãåŋ
čĻã§ãããããã¯ããšãĻæŠčŊããžããã , , , , , , . . , , , . , ( ).
- . . - , . JavaScript, ( ), . .
Java-. , . â , , .
. . , , .. . , , 1995 . ããããäģæĨã§ã¯ãããžããã . . , â . - .
, , . , . , . , . , . , .
. JavaScript , . , . , .
, , - . , â JavaScript .
, . . , . .
{ let a; { let b; ... a âĻ ... b âĻ } ... a ... }
JavaScript , â , . .
function green() { let a; function yellow() { let b; ... a âĻ ... b âĻ } ... a ... }
, , , ( â ).
, , ? . , . , A?
, , . â , heap, . .
, , ES6. , constructor:
function constructor(spec) { let {member} = spec, {other} = other_constructor(spec), method = function () {
. , .
, , , . - , . , . , , . â , .
. , .
. , . . , , - , . .
return. ES6 : method. , , .
. , , . JavaScript. , . - , Pascal, , , , . . . , , , . . , .
, . 2001 Java JSON. this. index, int. , , . , .
, 2001 . , int 2 â . . , JSON . , , .
, , -, JSON 7 Gb. , . , int. .
int. int â . , , int? , . , . , , ÂĢ- Âģ.
â : , , . â , ; . , , , .
, 10 20 , . , - , .
DEC64
, . , (, ).
, . . , Atari 2600 128 . 64 , 4 .
- . . , 50 , â ?
. , Java byte, char, short, int, long, flot, double .. , , , , . , . , . , , , . , , . ããã¯æĒãã§ãã
, JavaScript . . JavaScript , . 0.1 + 0.2 0.3. . â , .
, , . , . . - , , , . . , , .
- , : , 10 , , .
. , . : , . BCD (- ). . Fortran COBOL BCD. , . Java COBOL. Java -. .
. DEC64. 64- , , .
56- , , . Intel . , . . ( , ).
DEC64 Intel x64 â , (dec64.com,
GitHub ).
int. , , .
, , . , . . â , () . , , , .
, . â JSON.
Google, XML () JSON (). , XML 2005 , JSON.
, JSON . , JSON, JSON. . .
, . , . Google . Google Trends (
2015 â . . ). JSON , XML.
, :
HolyJS Piter :
20 JavaScript: . Lea Verou, Martin Splitt, Anjana Vakil, Claudia HernÃĄndez .
.