å 容
- ã¯ããã«
- å€ãã¿ã€ããããã³æŒç®å
- ããã°ã©ã æ§æ
- æ©èœ
- ããŒã¿æ§é ïŒãªããžã§ã¯ããšé å
- é«éé¢æ°
- ãªããžã§ã¯ãã®ç§å¯ã®ç掻
- ãããžã§ã¯ãïŒé»åç掻
- æ€çŽ¢ãšãšã©ãŒåŠç
- æ£èŠè¡šçŸ
- ã¢ãžã¥ãŒã«
- ãããžã§ã¯ãïŒããã°ã©ãã³ã°èšèª
- JavaScriptãšãã©ãŠã¶ãŒ
- ããã¥ã¡ã³ããªããžã§ã¯ãã¢ãã«
- ã€ãã³ãåŠç
- ãããžã§ã¯ãïŒãã©ãããã©ãŒã ã²ãŒã
- ãã£ã³ãã¹ã«æã
- HTTP
- ãã©ãŒã ãšãã©ãŒã ãã£ãŒã«ã
- ãããžã§ã¯ãïŒãã€ã³ã
- Node.js
- ãããžã§ã¯ãïŒçµéšå ±æãŠã§ããµã€ã
- ã³ãŒãã®ãµã³ãããã¯ã¹
圌ãã¯ç§ã«2åå°ããŸããããããããžãããæããŠãã ããããã·ã³ã«ééã£ãããŒã¿ãå ¥åããå Žåãæ£ããçããåŸãããŸããïŒã ç解ã§ããªãã®ã¯ããã®ãããªè³ªåã«ã€ãªããé ã®æ··ä¹±ã§ãã
ãã£ãŒã«ãºããããžããå²åŠè ã®ç掻ããã®æç²ãïŒ1864ïŒ
æ°å€ãããŒã«å€ãããã³æååã¯ãããŒã¿æ§é ãæ§ç¯ãããããªãã¯ã§ãã ããããããªãã¯1ã€ã®ã¬ã³ã¬ã®å®¶ãäœãããšã¯ã§ããŸããã ãªããžã§ã¯ãã䜿çšãããšãå€ïŒä»ã®ãªããžã§ã¯ããå«ãïŒãã°ã«ãŒãåããŠãããè€éãªæ§é ãæ§ç¯ã§ããŸãã
ç§ãã¡ãä»æ¥åãçµãã§ããããã°ã©ã ãæžãããšã¯ãåçŽãªããŒã¿ã§ããåäœããªããšããäºå®ã«ãã£ãŠéåžžã«è€éã«ãªããŸããã ãã®ç« ã§ã¯ãããŒã«ãããã«ããŒã¿æ§é ã®ç解ãè¿œå ããŸãã ãã®çµãããŸã§ã«ãæçšãªããã°ã©ã ã®äœæãéå§ããã®ã«ååãªããšãããããŸãã
ãã®ç« ã§ã¯ãå€ããå°ãªããçŸå®çãªããã°ã©ãã³ã°ã®äŸãåãäžããå¿ èŠã«å¿ããŠæŠå¿µã玹ä»ããŸãã äŸã®ã³ãŒãã¯ãåã«å®çŸ©ããé¢æ°ãšå€æ°ããæ§ç¯ãããŸãã
çŒãªã¹
æã«ã¯ãéåžžã¯å€æ¹8æãã10æã®éããžã£ãã¯ã¯æå¿ã«åããŠãæ¯ç®ã®ãããªå°Ÿãæã€å°ããªãã£æ¯é¡ã«ãªããŸãã
äžæ¹ã§ã¯ããžã£ãã¯ã¯åœŒãå€å žçãªãªãªã«ãã«å€ãããªãããšãããããæããŸãã ã¿ã³ãã¯è³ªã«å€ããããšã¯ãããå°ãªãåé¡ã䌎ããŸãã ããªãã¯é£äººãé£ã¹ããïŒæ¥ããããããšãïŒãå¿é ãã代ããã«ã圌ã¯é£äººã®ç«ã«é£ã¹ãããããšãå¿é ããŠããŸãã 圌ã¯andã®æšã®å ã®éåžžã«çŽ°ãæã§è£žã§æ··ä¹±ããç¶æ ã§2åç®èŠããåŸãå€ã®ééšå±ã®çªãšãã¢ãããã¯ããèªåèªèº«ãå¿ããããããã«åºã«ããã€ãã®ãããã眮ãããšãåŠã³ãŸããã

ããã«ãããç«ãšãªãŒã¯ã®åé¡ã解決ãããŸãã ãããããžã£ãã¯ã¯ãŸã 圌ã®ç æ°ã«èŠããã§ããŸãã äžèŠåãªã¢ããŒã«ã¯ãäœãã«ãã£ãŠåŒãèµ·ããããã¹ãã ãšèããããŸãã æåã¯ãããã¯æšã«è§Šããæ¥ã«ããèµ·ãããªããšæã£ãŠããŸããã 圌ã¯ãããããã圌ãã«è¿å¯ãã®ãé¿ãå§ããŸããã ããããåé¡ã¯æ¶ããŠããŸããã
ããç§åŠçãªã¢ãããŒãã«ç§»è¡ããŠããžã£ãã¯ã¯èªåãè¡ã£ãããšãã¹ãŠã®æ¥èšãã€ããŠããªã¹ã«é£çµ¡ãããã©ãããæžãçããããšã«ããŸããã ããã§åœŒã¯ãå€é©ã«ã€ãªãããã®ã®èŒªãçããããšèããŠããŸãã
æåã«ã圌ã¯ãã®æ å ±ãä¿åããããŒã¿æ§é ãéçºããããšã決ããŸããã
ããŒã¿ã»ãã
ããŒã¿ãåŠçããã«ã¯ããŸããã·ã³ã®ã¡ã¢ãªã§ããããè¡šçŸããæ¹æ³ãèŠã€ããå¿ èŠããããŸãã ããšãã°ãæ°åã®ã³ã¬ã¯ã·ã§ã³ãèŠããŠããå¿ èŠããããŸãã
2, 3, 5, 7, 11
æååã§éã¶ããšãã§ããŸã-æååã¯ä»»æã®é·ãã«ããããšãã§ãã倧éã®ããŒã¿ãå ¥ããããšãã§ããã2 3 5 7 11ãã䜿çšããŠãã®ã»ãããè¡šããŸãã ããããããã¯äžäŸ¿ã§ãã äœããã®æ¹æ³ã§ããããæ°åãæœåºããããæååã«æ°ããæ°åãæ¿å ¥ããå¿ èŠããããŸãã
幞ããªããšã«ãJavaScriptã¯ãæ°å€ã®ã·ãŒã±ã³ã¹ãä¿åããããã®ããŒã¿åãæäŸããŸãã ããã¯é åãšåŒã°ããã«ã³ãã§åºåãããè§æ¬åŒ§å ã®å€ã®ãªã¹ããšããŠèšè¿°ãããŸãã
var listOfNumbers = [2, 3, 5, 7, 11]; console.log(listOfNumbers[1]); // â 3 console.log(listOfNumbers[1 - 1]); // â 2
é åããèŠçŽ ãååŸããã¬ã³ãŒããè§æ¬åŒ§ã䜿çšããŸãã å éšã«å¥ã®åŒãå«ãåŒã®åŸã®æ¬åŒ§ã®ãã¢ã¯ãæåã®åŒã§æå®ãããé åã2çªç®ã®åŒã§ã·ãªã¢ã«çªå·ãäžããããèŠçŽ ãæ€çŽ¢ããŸãã
æåã®èŠçŽ ã®æ°ã¯1ã§ã¯ãªããŒãã§ãã ãããã£ãŠãæåã®èŠçŽ ã¯listOfNumbers [0]ã®ããã«ååŸã§ããŸãã 以åã«ããã°ã©ã ããããšããªãå Žåã¯ããã®ãããªçªå·ä»ãã«æ £ããå¿ èŠããããŸãã ããããããã¯é·ãäŒçµ±ããããåžžã«èŠ³å¯ãããŠããéãããã¯çŽ æŽãããäœåã§ãã
ããããã£
åã®äŸã§ã¯ãmyString.lengthïŒæååã®é·ããååŸïŒãMath.maxïŒæ倧å€ãååŸïŒãªã©ã®çãããåŒãå€æ°èŠãããŸããã ãããã®åŒã¯æ°éã®ããããã£ã䜿çšããŸãã æåã®ã±ãŒã¹ã§ã¯ãmyStringå€æ°ã®lengthããããã£ã«ã¢ã¯ã»ã¹ã§ããŸãã 2ã€ç®ã¯ãMathãªããžã§ã¯ãïŒæ°åŠã«é¢é£ããé¢æ°ãšå€æ°ã®ã»ããïŒã®maxããããã£ãžã®ã¢ã¯ã»ã¹ã§ãã
JavaScriptã®ã»ãšãã©ãã¹ãŠã®å€æ°ã«ã¯ããããã£ããããŸãã äŸå€ã¯ãã«ã§æªå®çŸ©ã§ãã ãããã®éæ°éã®ååšããªãããããã£ã«ã¢ã¯ã»ã¹ããããšãããšããšã©ãŒãçºçããŸãã
null.length; // â TypeError: Cannot read property 'length' of null
ããããã£ã«ã¢ã¯ã»ã¹ãã2ã€ã®äž»ãªæ¹æ³ã¯ãããããšè§æ¬åŒ§ã§ãã value.xãšvalue [x]ã¯valueããããã£ã«ã¢ã¯ã»ã¹ããŸãããå¿ ãããåããã®ã§ã¯ãããŸããã éãã¯xã®è§£éæ¹æ³ã§ãã ãã€ã³ãã䜿çšããå Žåããã€ã³ãã®åŸã®ã¬ã³ãŒãã¯æ¢åã®å€æ°ã®ååã§ããå¿ èŠããããããååã§ããããã£ãçŽæ¥åŒã³åºããŸãã è§æ¬åŒ§ã䜿çšãããšãæ¬åŒ§å ã®åŒãè©äŸ¡ãããŠããããã£ã®ååãååŸãããŸãã value.xã¯ãxããšããããããã£ãåŒã³åºããå€[x]ã¯åŒxãè©äŸ¡ãããã®çµæãããããã£ã®ååãšããŠäœ¿çšããŸãã
é¢å¿ã®ããããããã£ããé·ãããšåŒã°ããããšãããã£ãŠããå Žåã¯ãvalue.lengthãèšè¿°ããŸãã å€æ°iããããããã£åãæœåºããå Žåã¯ãå€[i]ãèšè¿°ããŸãã ãŸããããããã£ã«ã¯ä»»æã®ååãä»ããããšãã§ãããããã2ããŸãã¯ãJon Doeããšããååã§ããããã£ã«ã¢ã¯ã»ã¹ããã«ã¯ãè§æ¬åŒ§ã䜿çšããå¿ èŠããããŸããå€[2]ãŸãã¯å€[ãJohn Doeã]ã ããã¯ãããããã£ã®æ£ç¢ºãªååãããã£ãŠããå Žåã§ãå¿ èŠã§ããã2ããŸãã¯ãJohn Doeãã¯æå¹ãªå€æ°åã§ã¯ãªãããããããè¡šèšã䜿çšããŠã¢ã¯ã»ã¹ã§ããªãããã§ãã
é åèŠçŽ ã¯ããããã£ã«ä¿åãããŸãã ãããã®ããããã£ã®ååã¯æ°å€ã§ãããå€æ°ã®å€ããååãååŸããå¿ èŠãããããšãå€ããããè§æ¬åŒ§ã䜿çšããŠã¢ã¯ã»ã¹ããå¿ èŠããããŸãã é åã®lengthããããã£ã¯ããã®äžã«ããèŠçŽ ã®æ°ã瀺ããŸãã ãã®ããããã£ã®ååã¯æå¹ãªå€æ°åã§ãããäºåã«ç¥ã£ãŠãããããé å["length"]ãèšè¿°ãããããç°¡åãªã®ã§ãéåžžarray.lengthãèšè¿°ããŸãã
æ¹æ³
æååãªããžã§ã¯ããšé åãªããžã§ã¯ãã«ã¯ãlengthããããã£ã«å ããŠãé¢æ°ãåç §ããããã€ãã®ããããã£ãå«ãŸããŠããŸãã
var doh = ""; console.log(typeof doh.toUpperCase); // â function console.log(doh.toUpperCase()); // â
åè¡ã«ã¯toUpperCaseããããã£ããããŸãã åŒã³åºããããšããã¹ãŠã®æåã倧æåã«çœ®ãæããããæååã®ã³ããŒãè¿ããŸãã toLowerCaseããããŸã-ãããäœããããæšæž¬ã§ããŸãã
ãããããããšã«ãUpperCaseã®åŒã³åºãã¯åŒæ°ãæž¡ããŸããããé¢æ°ã¯äœããã®æ¹æ³ã§åŒã³åºãããDucãè¡ã«ã¢ã¯ã»ã¹ããŸãã ãã®ä»çµã¿ã«ã€ããŠã¯ã第6ç« ã§èª¬æããŠããŸãã
é¢æ°ãå«ãããããã£ã¯ãéåžžãããããå±ããå€æ°ã®ã¡ãœãããšåŒã°ããŸãã ã€ãŸããtoUpperCaseã¯æååã¡ãœããã§ãã
次ã®äŸã¯ãé åã§äœ¿çšå¯èœãªã¡ãœããã®äžéšã瀺ããŠããŸãã
var mack = []; mack.push(","); mack.push("", ""); console.log(mack); // â [",", "", ""] console.log(mack.join(" ")); // â , console.log(mack.pop()); // â console.log(mack); // â [",", ""]
pushã¡ãœããã¯ãé åã®æåŸã«å€ãè¿œå ããããã«äœ¿çšãããŸãã popã¯éã®åŠçãè¡ããŸããé åã®æ«å°Ÿããå€ãåé€ããŠè¿ããŸãã æååã®é åã¯ãjoinã¡ãœããã䜿çšããŠåäžã®æååã«ãã©ããåã§ããŸãã çµååŒæ°ãšããŠãé åã®èŠçŽ éã«æ¿å ¥ãããæååãæž¡ããŸãã
ãªããžã§ã¯ã
ãªã¹ã«æ»ããŸãããã äžé£ã®ãžã£ãŒãã«ãšã³ããªã¯é åãšããŠè¡šãããšãã§ããŸãã ãã ããã¬ã³ãŒãã¯æ°åãè¡ã ãã§æ§æãããŠããããã§ã¯ãããŸããããããããããŒããŒã®è¡åã®ãªã¹ããšããžã£ãã¯ããªã¹ã«å€ãã£ããã©ããã瀺ãããŒã«å€ãä¿æããå¿ èŠããããŸãã çæ³çã«ã¯ãåã¬ã³ãŒãã1ã€ã®å€æ°ã«ã°ã«ãŒãåããããããé åã«è¿œå ããŸãã
ã¿ã€ããªããžã§ã¯ãïŒãªããžã§ã¯ãïŒã®å€æ°-ä»»æã®ããããã£ã®ã³ã¬ã¯ã·ã§ã³ãå¿ èŠã«å¿ããŠãªããžã§ã¯ãã®ããããã£ãè¿œå ããã³åé€ã§ããŸãã ãªããžã§ã¯ããäœæãã1ã€ã®æ¹æ³ã¯ãäžæ¬åŒ§ã䜿çšããããšã§ãã
var day1 = { squirrel: false, events: ["", " ", "", "", ""] }; console.log(day1.squirrel); // â false console.log(day1.wolf); // â undefined day1.wolf = false; console.log(day1.wolf); // â false
æ¬åŒ§å ã«ãã³ã³ãã§åºåãããããããã£ã®ãªã¹ããæå®ã§ããŸãã åããããã£ã¯ååãšããŠèšè¿°ããããã®åŸã«ã³ãã³ãç¶ããããããã£ã®å€ã§ããåŒãç¶ããŸãã ã¹ããŒã¹ãšæ¹è¡ã¯èæ ®ãããŸããã ãªããžã§ã¯ãããããã£ã®ã¬ã³ãŒããè€æ°ã®è¡ã«åå²ããããšã«ãããã³ãŒãã®å¯èªæ§ãåäžããŸãã ããããã£åãæå¹ãªå€æ°åã§ãªãå Žåã¯ãåŒçšç¬Šã§å²ãå¿ èŠããããŸãã
var descriptions = { work: " ", " ": " " };
JavaScriptã®äžæ¬åŒ§ã«ã¯2ã€ã®æå³ãããããšãããããŸãã åœä»€ã®å é ã§äœ¿çšãããåœä»€ã®æ°ãããããã¯ãéå§ããŸãã ä»ã®å Žæã§ã¯ããªããžã§ã¯ããèšè¿°ããŸãã éåžžããªããžã§ã¯ãã®èª¬æããåœä»€ãéå§ããããšã¯æå³ããªããªããããããã°ã©ã ã§ã¯ãéåžžãããã2ã€ã®ãã¬ãŒã¹ã®äœ¿çšã«ã€ããŠãããŸããã¯ãããŸããã
ååšããªãããããã£ã®å€ãèªã¿åãããšãããšãæåã«wolfããããã£ãèªã¿åãããšããäŸã®ããã«ãæªå®çŸ©ã«ãªããŸãã
=æŒç®åã䜿çšããŠãããããã£ã«å€ãå²ãåœãŠãããšãã§ããŸãã 以åã«å€ããã£ãå Žåã¯ã眮ãæããããŸãã ããããã£ãæ¬ èœããŠããå ŽåãäœæãããŸãã
觊æãšå€æ°ã䜿çšããŠã¢ãã«ã«æ»ããšãããããã£ããããã«äŒŒãŠããããšãããããŸãã å€ãååŸããŸãããä»ã®å€æ°ãšããããã£ã¯åãå€ãåç §ããå ŽåããããŸãã ãªããžã§ã¯ãã¯ãä»»æã®æ°ã®è§Šæãæã€ã¿ã³ã§ãããããããã«ããããã£ã®ååãæžã蟌ãŸããŸãã

åé€ãªãã¬ãŒã¿ãŒã¯ã觊æãåæããŸãã ããã¯ãããããã£ã¢ã¯ã»ã¹åŒã«é©çšãããåé æŒç®åã§ãã ããã¯ãã£ãã«è¡ãããŸããããããªãå¯èœã§ãã
var anObject = {left: 1, right: 2}; console.log(anObject.left); // â 1 delete anObject.left; console.log(anObject.left); // â undefined console.log("left" in anObject); // â false console.log("right" in anObject); // â true
ãã€ããªå ¥åæŒç®åã¯ãæååãšãªããžã§ã¯ãã®ååãåãåãããªããžã§ã¯ãã«ãã®ååã®ããããã£ããããã©ããã瀺ãããŒã«å€ãè¿ããŸãã ããããã£å€ãæªå®çŸ©ã«èšå®ããããšãšãããããã£ãåé€ããããšã«ã¯éãããããŸãã æåã®å Žåãããããã£ã¯ãªããžã§ã¯ãã«ä¿åããã空ã«ãªããŸãã 2çªç®ã§ã¯ãããããã£ã¯ãããªãã®ã§ãinã¯falseãè¿ããŸãã
é åã¯ãã·ãŒã±ã³ã¹ã®æ ŒçŽã«ç¹åããäžçš®ã®ãªããžã§ã¯ãã§ããããšãããããŸãã åŒtypeof [1ã2]ã¯ãããªããžã§ã¯ãããè¿ããŸãã 圌ãã¯ãã¹ãŠã®è§Šæãåçã«é 眮ãããæ°åã§ã©ãã«ä»ããããé·ãå¹³ããªã¿ã³ãšèããããšãã§ããŸãã

ãããã£ãŠãJacquesãã¬ãžã³ã¯ãªããžã§ã¯ãã®é åãšããŠè¡šãããšãã§ããŸãã
var journal = [ {events: ["", " ", "", "", ""], squirrel: false}, {events: [" ", "", " ", "", " ", " "], squirrel: false}, {events: ["", "", "", "", ""], squirrel: true}, /* ... */ ];
å¯å€æ§
ããã«ããã°ã©ãã³ã°ã«åãæãããŸãã ãããŸã§ã®éãçè«ã®æåŸã®éšåãç解ããå¿ èŠããããŸãã
ãªããžã§ã¯ãã®å€ã¯å€æŽã§ããããšãããããŸããã åã«èª¿ã¹ãå€ã®çš®é¡ïŒæ°å€ãæååãããŒã«å€ïŒã¯äžå€ã§ãã ç¹å®ã®ã¿ã€ãã®æ¢åã®å€ãå€æŽããããšã¯ã§ããŸããã ããããçµã¿åãããŠæ°ããå€ã掟çãããããšã¯ã§ããŸãããæååå€ãæäœããå Žåããã®å€ã¯äžå®ã®ãŸãŸã§ãã è¡å ã®ããã¹ãã¯å€æŽã§ããŸããã ãcatãè¡ãžã®ãªã³ã¯ãããå Žåã¯ãã³ãŒãå ã®æåãå€æŽããŠãmidgeããäœæããããšã¯ã§ããŸããã
ãã ãããªããžã§ã¯ãã®å Žåãããããã£ã®å€ãå€æŽããããšã§ã³ã³ãã³ããå€æŽã§ããŸãã
120ãš120ã®2ã€ã®æ°å€ãããå Žåãããããåãå Žæã®ã¡ã¢ãªã«æ ŒçŽãããŠãããã©ããã«é¢ä¿ãªãããããã1ã€ã®åããšèŠãªãããšãã§ããŸãã ãããããªããžã§ã¯ããæ±ãå Žåãåããªããžã§ã¯ããžã®2ã€ã®åç §ãããããåãããããã£ãå«ã2ã€ã®ç°ãªããªããžã§ã¯ãããããã«ãã£ãŠéãããããŸãã äŸãèããŠã¿ãŸãããïŒ
var object1 = {value: 10}; var object2 = object1; var object3 = {value: 10}; console.log(object1 == object2); // â true console.log(object1 == object3); // â false object1.value = 15; console.log(object2.value); // â 15 console.log(object3.value); // â 10
å€æ°object1ãšobject2ã¯åããªããžã§ã¯ããä¿æãããããobject1ãå€æŽãããšobject2ãå€æŽãããŸãã å€æ°object3ã¯ãæåã¯object1ãšåãããããã£ãå«ãå¥ã®ãªããžã§ã¯ããæããŸãããããèªäœã®å¯¿åœãæã¡ãŸãã
ãªããžã§ã¯ããæ¯èŒãããšããæ¯èŒããããªããžã§ã¯ããåãå€æ°ã§ããå Žåã«ã®ã¿==æŒç®åã¯trueãè¿ããŸãã ç°ãªããªããžã§ã¯ããæ¯èŒãããšãå 容ãåãã§ãã£ãŠãfalseãè¿ãããŸãã ãªããžã§ã¯ãã®å 容ãæ¯èŒãããæ·±ããæ¯èŒæŒç®åã¯JavaScriptã§ã¯æäŸãããŠããŸããããç¬ç«ããŠå®è¡ã§ããŸãïŒããã¯ç« ã®æåŸã®æŒç¿ã®1ã€ã§ãïŒã
ãŠã§ã¢ãŠã«ãèª
ãã®ãããJacquesã¯ãæ°ã«å ¥ãã®JavaScriptã€ã³ã¿ãŒããªã¿ãŒãèµ·åãããã°ã®ä¿åã«å¿ èŠãªç°å¢ãäœæããŸãã
var journal = []; function addEntry(events, didITurnIntoASquirrel) { journal.push({ events: events, squirrel: didITurnIntoASquirrel }); }
æ¯æ©10æãæã«ã¯ææ¥ã®æãã¯ããŒãŒããã®äžçªäžã®æ£ããéããŠã圌ã¯èªåã®æ¥ãæžãçããŸãã
addEntry(["", " ", "", "", ""], false); addEntry([" ", "", " ", "", " ", " "], false); addEntry(["", "", "", "", ""], true);
ååãªããŒã¿ãåŸããããã圌ã¯ã©ãããšæ¯æ¥ã®ã€ãã³ããšã®çžé¢ãèšç®ããçæ³çã«ã¯ãããã®çžé¢ããäœãæçšãªããšãåŠã³ãŸãã
çžé¢ã¯ãå€æ°ïŒJavaScriptã®æå³ã§ã¯ãªããçµ±èšçãªæå³ã§ã®å€æ°ïŒéã®é¢ä¿ã®å°ºåºŠã§ãã éåžžã-1ãã1ã®å€ãåãä¿æ°ãšããŠè¡šãããŸãããŒãçžé¢ã¯ãå€æ°ããŸã£ããæ¥ç¶ãããŠããªãããšãæå³ããçžé¢1ã¯ãå€æ°ãå®å šã«æ¥ç¶ãããŠããããšãæå³ããŸãã ãã€ãã¹1ã¯ãå€æ°ã®åŒ·ãã€ãªãããæå³ããŸããããã®å察ãæå³ããŸãã1ã€ãçã®å Žåã2ã€ç®ã¯åžžã«åœã§ãã
ä¿æ°phiïŒÏïŒã¯ããŒã«å€æ°ã®çžé¢ã枬å®ããã®ã«ããé©ããŠãããèšç®ã¯æ¯èŒçç°¡åã§ãã ãããè¡ãã«ã¯ã2ã€ã®å€æ°ã®ããŸããŸãªçµã¿åããã芳å¯ãããåæ°ãå«ãããŒãã«ãå¿ èŠã§ãã ããšãã°ãããã¶ãé£ã¹ããããã³ãã¢ããŒã«ãããã€ãã³ããååŸããŠã次ã®è¡šã«è¡šç€ºã§ããŸãã

Ïã¯æ¬¡ã®åŒã§èšç®ã§ããŸããããã§ãnã¯ããŒãã«ã®ã»ã«ãæããŸãã

n01ã¯ãæåã®ã€ãã³ãïŒãã¶ïŒãåœïŒ0ïŒã§ã2çªç®ã®ã€ãã³ãïŒåŒã³åºãïŒãçïŒ1ïŒã®å Žåã®æž¬å®æ°ã瀺ããŸãã ãã®äŸã§ã¯ãn01 = 4ã§ãã
è¡šèšn1â¢ã¯ãæåã®ã€ãã³ããtrueã§ãããã¹ãŠã®ãã£ã¡ã³ã·ã§ã³ã®åèšã瀺ããŸãããã®äŸã§ã¯10ã§ãããããã£ãŠãnâ¢0ã¯ããcallãã€ãã³ããfalseã§ãããã¹ãŠã®ãã£ã¡ã³ã·ã§ã³ã®åèšã§ãã
ãããã£ãŠããã¶ããŒãã«ã®å ŽåãåŒã®ååã¯1Ã76-9Ã4 = 40ã§ãããåæ¯ã¯10Ã80Ã5Ã85ã®ã«ãŒãããŸãã¯â340000ã§ãã Ïâ0.069ã§ãããããªãå°ããããšãããããŸãã ãã¶ã¯ã¿ã³ãã¯è³ªã«åœ±é¿ãäžããªãããã§ãã
çžé¢ãèšç®ãã
2x2ããŒãã«ã¯ã4ã€ã®èŠçŽ ã®é åïŒ[76ã9ã4ã1]ïŒã2ã€ã®èŠçŽ ã®é åïŒããããã2ã€ã®èŠçŽ ã®é åïŒ[76ã9]ã[4ã1]]ïŒã§ãããªããžã§ã¯ããšããŠãè¡šçŸã§ããŸãã ã11ããŸãã¯ã01ããšããååã®ããããã£ãæã€ã ããããç§ãã¡ã«ãšã£ãŠã¯ã1次å é åã®æ¹ãç°¡åã§ãããã«ã¢ã¯ã»ã¹ããããã®åŒã¯çããªããŸãã é åã®ã€ã³ããã¯ã¹ã2æ¡ã®2é²æ°ãšããŠåŠçããŸããå·Šã®èšå·ã¯å£²äžé«ã®å€æ°ã瀺ããå³ã®èšå·ã¯ã€ãã³ãã瀺ããŸãã ããšãã°ã10ã¯ãžã£ãã¯ããªã¹ã«ãªã£ãããã€ãã³ãïŒããšãã°ããã¶ãïŒãçºçããªãã£ãå Žåã瀺ããŸãã ããã¯4åèµ·ãããŸããã ãŸãããã€ããª10ã¯10é²æ°2ã§ããããããããã€ã³ããã¯ã¹2ã®é åã«æ ŒçŽããŸãã
ãã®ãããªé åããä¿æ°Ïãèšç®ããé¢æ°ïŒ
function phi(table) { return (table[3] * table[0] - table[2] * table[1]) / Math.sqrt((table[2] + table[3]) * (table[0] + table[1]) * (table[1] + table[3]) * (table[0] + table[2])); } console.log(phi([76, 9, 4, 1])); // â 0.068599434
ããã¯ãJavaScriptã®ÏåŒãçŽæ¥å®è£ ãããã®ã§ãã Math.sqrtã¯ãæšæºJavaScriptç°å¢ããMathãªããžã§ã¯ãã®å¹³æ¹æ ¹ãæœåºããé¢æ°ã§ãã ã¿ã€ãn1â¢ã®ãã£ãŒã«ããååŸããã«ã¯ãããŒãã«ã®2ã€ã®ãã£ãŒã«ããè¿œå ããå¿ èŠããããŸããåãŸãã¯è¡ã®åèšãæ瀺çã«ä¿åããªãããã§ãã
Jacquesã¯3ãæéãã°ã«èšé²ããŸããã çµæã¯æ¬ã®ãŠã§ããµã€ãã§å ¥æã§ããŸãã
eloquentjavascript.net/code/jacques_journal.js
ç¹å®ã®ã€ãã³ãã®2x2å€æ°ãæœåºããã«ã¯ããµã€ã¯ã«å ã®ãã¹ãŠã®ã¬ã³ãŒãã調ã¹ãŠãã¿ã³ãã¯è³ªãžã®ã¢ããŒã«ã«é¢é£ããŠçºçããåæ°ãèšç®ããå¿ èŠããããŸãã
function hasEvent(event, entry) { return entry.events.indexOf(event) != -1; } function tableFor(event, journal) { var table = [0, 0, 0, 0]; for (var i = 0; i < journal.length; i++) { var entry = journal[i], index = 0; if (hasEvent(event, entry)) index += 1; if (entry.squirrel) index += 2; table[index] += 1; } return table; } console.log(tableFor("pizza", JOURNAL)); // â [76, 9, 4, 1]
hasEventé¢æ°ã¯ããšã³ããªã«ç®çã®ã¢ã€ãã ãå«ãŸããŠãããã©ããã確èªããŸãã é åã«ã¯ãé åå ã®ç¹å®ã®å€ïŒãã®å Žåã¯ã€ãã³ãã®ååïŒãæ€çŽ¢ããindexOfã¡ãœããããããŸãã é åå ã®äœçœ®ã®ã€ã³ããã¯ã¹ãè¿ããŸãïŒé åå ã«ãªãå Žåã¯-1ïŒã ãã®ãããindexOfã®åŒã³åºãã-1ãè¿ããªãã£ãå Žåãã¬ã³ãŒãã«ã€ãã³ãããããŸãã
tableForã®ã«ãŒãã®æ¬äœã¯ãåãã°ãšã³ããªãå«ãŸããããŒãã«å ã®ã»ã«ãèšç®ããŸãã 圌女ã¯ãã¬ã³ãŒãã«ç®çã®ã€ãã³ããå«ãŸããŠãããã©ãããããã³ãããã¿ã³ãã¯è³ªãžã®ã¢ããŒã«ã«é¢é£ããŠãããã©ããã確èªããŸãã 次ã«ãã«ãŒãã¯ãç®çã®ã»ã«ã«å¯Ÿå¿ããé åã®èŠçŽ ã1ã€å¢ãããŸãã
ããã§ãçžé¢ãèšç®ããããã®ãã¹ãŠã®ããŒã«ãã§ããŸããã åã€ãã³ãã®çžé¢ãèšç®ãããªã¹ãã®ããããã衚瀺ããããã©ããã確èªããã ãã§ãã ãããããããã®çžé¢ãä¿åããæ¹æ³ã¯ïŒ
ããããšããŠã®ãªããžã§ã¯ã
1ã€ã®æ¹æ³ã¯ãååãšå€ã®ããããã£ãæã€ãªããžã§ã¯ãã䜿çšããŠãé åã«çžé¢ãä¿åããããšã§ãã ãã ããé åå ã®çžé¢ã®æ€çŽ¢ã¯ããªãé¢åã§ããç®çã®ååã®ãªããžã§ã¯ããèŠã€ããã«ã¯ãé åå šäœã調ã¹ãå¿ èŠããããŸãã ãã®ããã»ã¹ãé¢æ°ã§ã©ããããããšãã§ããŸããããšã«ããã³ãŒããèšè¿°ããå¿ èŠããããã³ã³ãã¥ãŒã¿ãŒã¯å¿ èŠä»¥äžã®äœæ¥ãããŸãã
ããè¯ãæ¹æ³ã¯ããªããžã§ã¯ãã®ããããã£ãã€ãã³ãåãšãšãã«äœ¿çšããããšã§ãã è§æ¬åŒ§ã䜿çšããŠããããã£ãäœæããã³èªã¿åããinæŒç®åã䜿çšããŠããããã£ã®ååšã確èªã§ããŸãã
var map = {}; function storePhi(event, phi) { map[event] = phi; } storePhi("", 0.069); storePhi(" ", -0.081); console.log("" in map); // â true console.log(map[" "]); // â -0.081
ãããã¯ããããšãªã¢ã®å€ïŒãã®å Žåã¯ã€ãã³ãã®ååïŒãå¥ã®ãšãªã¢ã®å€ïŒãã®å Žåã¯ä¿æ°ÏïŒã«é¢é£ä»ããæ¹æ³ã§ãã
ãã®ãªããžã§ã¯ãã®äœ¿çšã«ã¯ããã€ãã®åé¡ããããŸãããããã«ã€ããŠã¯ç¬¬6ç« ã§èª¬æããŸãããçŸæç¹ã§ã¯å¿é ããå¿ èŠã¯ãããŸããã
ä¿æ°ãä¿åãããŠãããã¹ãŠã®ã€ãã³ããåéããå¿ èŠãããå Žåã¯ã©ããªããŸããïŒ é åå ã«ãããããäºæž¬å¯èœãªã·ãŒã±ã³ã¹ã¯äœæãããªããããforã«ãŒãã¯æ©èœããŸããã JavaScriptã¯ããªããžã§ã¯ãã®ãã¹ãŠã®ããããã£ãèµ°æ»ããããã®ã«ãŒãæ§é ãæäŸããŸãã forã«ãŒãã®ããã«èŠããŸãããinã³ãã³ãã䜿çšããŸãã
for (var event in map) console.log(" '" + event + "' " + map[event]); // â '' 0.069 // â ' ' -0.081
èŠçŽåæ
ããŒã¿ã»ããã§è¡šããããã¹ãŠã®ã¿ã€ãã®ã€ãã³ããèŠã€ããããã«ãåçºçãé çªã«åŠçããŠããããã¹ãŠã®çºçã€ãã³ãã®ã«ãŒããäœæããŸãã ãã§ã«èŠã€ãã£ããã¹ãŠã®ã¿ã€ãã®ã€ãã³ãã®çžé¢ä¿æ°ãå«ãphisãªããžã§ã¯ããä¿åããŸãã ãŸã phisã«ãªãæ°ããã¿ã€ãã«åºäŒã£ãå Žåããã®çžé¢ãèšç®ããŠãªããžã§ã¯ãã«è¿œå ããŸãã
function gatherCorrelations(journal) { var phis = {}; for (var entry = 0; entry < journal.length; entry++) { var events = journal[entry].events; for (var i = 0; i < events.length; i++) { var event = events[i]; if (!(event in phis)) phis[event] = phi(tableFor(event, journal)); } } return phis; } var correlations = gatherCorrelations(JOURNAL); console.log(correlations.pizza); // â 0.068599434
èŠãŸãã äœãèµ·ãã£ãïŒ
for (var event in correlations) console.log(event + ": " + correlations[event]); // â : 0.0140970969 // â : 0.0685994341 // â : 0.1371988681 // â : -0.0757554019 // â : -0.0648203724 // ...
ã»ãšãã©ã®çžé¢ã¯ãŒãã«è¿ãã§ãã ãã³ãžã³ããã³ãããªã³ã¯æããã«ã¿ã³ãã¯è³ªã®å€æãšã¯é¢ä¿ãããŸããã ããããé±æ«ã«ã¯ãã£ãšé »ç¹ã«èµ·ããããã§ãã çµæããã£ã«ã¿ãŒåŠçããŠã0.1ãã倧ããçžé¢ãŸãã¯-0.1ããå°ããçžé¢ã®ã¿ã衚瀺ããŸãã
for (var event in correlations) { var correlation = correlations[event]; if (correlation > 0.1 || correlation < -0.1) console.log(event + ": " + correlation); } // â : 0.1371988681 // â : -0.3805211953 // â : 0.1296407447 // â : -0.1371988681 // â : 0.2425356250 // â : 0.1106828054 // â : 0.5902679812
ããïŒ 2ã€ã®çžé¢ä¿æ°ã¯ãä»ã®çžé¢ä¿æ°ãããèãã倧ãããªã£ãŠããŸãã ããŒãããã¯ãããã±ã質ã«ãªãå¯èœæ§ã«å€§ãã圱é¿ããŸãããæ¯ã磚ããšäºé²ãããŸãã
é¢çœãã ãããè©ŠããŠã¿ãŸãããïŒ
for (var i = 0; i < JOURNAL.length; i++) { var entry = JOURNAL[i]; if (hasEvent("", entry) && !hasEvent(" ", entry)) entry.events.push(" "); } console.log(phi(tableFor(" ", JOURNAL))); // â 1
ééãã¯ãããŸããïŒ ãã®çŸè±¡ã¯ããžã£ãã¯ãããŒããããæã¡ãæ¯ã磚ããªããšãã«èµ·ãããŸãã 圌ãå£è è¡çã«ã€ããŠãããªã«ãµãã ãã§ãªãã£ããã圌ã¯åœŒã®äžå¹žã«å šãæ°ã¥ããªãã£ãã ããã
ãããç¥ã£ãŠããžã£ãã¯ã¯åã«ããŒããããé£ã¹ãã®ããããå€æãåæ¢ããããšãçºèŠããŸãã
ãžã£ãã¯ã¯ãã°ããå æ°ã§ããããããæ°å¹ŽåŸã圌ã¯ä»äºã倱ããæçµçã«ã¯ãµãŒã«ã¹ã«è¡ãå¿ èŠããããã·ã§ãŒã®åã«åœŒã¯é©ãã¹ããªã¹ãã³ãšããŠè¡åããäžå£ã®ããŒããããã¿ãŒãæŸããŸããäžåºŠããã®ãããªæ²æšãªååšã«ããããããŠãããžã£ãã¯ã¯ã人éã«æ»ããããµãŒã«ã¹ã®ãã³ãã®ç©Žããã£ããæããŠæ£®ã®äžã«å§¿ãæ¶ããŸãã誰ã圌ãèŠãŸããã§ããã
ãããªã質éåŠ
ãã®ç« ã®æåŸã§ããªããžã§ã¯ãã«é¢é£ããããã€ãã®æŠå¿µã玹ä»ããŸããé åã«ãã䟿å©ãªã¡ãœããããå§ããŸãããã
é åã®æåŸã«èŠçŽ ãè¿œå ããã³åé€ããããã·ã¥ããã³ãããã¡ãœãããèŠãŸãããé åãéå§ããé©åãªã¡ãœããã¯ãunshiftããã³shiftãšåŒã°ããŸã
var todoList = []; function rememberTo(task) { todoList.push(task); } function whatIsNext() { return todoList.shift(); } function urgentlyRememberTo(task) { todoList.unshift(task); }
ãã®ããã°ã©ã ã¯ãäºå®ãªã¹ãã管çããŸãããªã¹ãã®æåŸã«rememberToïŒâ eatâïŒãåŒã³åºããŠç©äºãè¿œå ããäœããããæºåãã§ããããwhatIsNextïŒïŒãåŒã³åºããŠãªã¹ãã®æåã®èŠçŽ ãååŸïŒããã³åé€ïŒããŸããurgentlyRememberToé¢æ°ãã¿ã¹ã¯ãè¿œå ããŸããããªã¹ãã®äžçªäžã«ã®ã¿è¿œå ããŸãã
indexOfã¡ãœããã«ã¯ãlastIndexofãšããååã®çžå¯Ÿããããé åã®èŠçŽ ã®æ€çŽ¢ãæåŸããéå§ããŸãã
console.log([1, 2, 3, 2, 1].indexOf(2)); // â 1 console.log([1, 2, 3, 2, 1].lastIndexOf(2)); // â 3
indexOfãšlastIndexOfã®äž¡æ¹ã®ã¡ãœããã¯ãæ€çŽ¢ã®éå§äœçœ®ãèšå®ãããªãã·ã§ã³ã®2çªç®ã®åŒæ°ãåããŸãã
ãã1ã€ã®éèŠãªæ¹æ³ã¯ã¹ã©ã€ã¹ã§ããããã¯ãéå§ïŒéå§ïŒèŠçŽ ãšçµäºïŒçµäºïŒèŠçŽ ã®çªå·ãååŸãããã®ã®ã£ããã«è©²åœããèŠçŽ ã®ã¿ã§æ§æãããé åãè¿ããŸããéå§ã€ã³ããã¯ã¹ã«ãããã®ãå«ãããçµäºã€ã³ããã¯ã¹ã«ãããã®ãé€å€ããŸãã
console.log([0, 1, 2, 3, 4].slice(2, 4)); // â [2, 3] console.log([0, 1, 2, 3, 4].slice(2)); // â [2, 3, 4]
çµäºã€ã³ããã¯ã¹ãæå®ãããŠããªãå Žåãã¹ã©ã€ã¹ã¯éå§ã€ã³ããã¯ã¹ã®åŸã®ãã¹ãŠã®èŠçŽ ãéžæããŸããæååã«ã¯ãåãããã«æ©èœããåæ§ã®ã¡ãœããããããŸãã
concatã¡ãœããã¯ã+æŒç®åãæååãæ¥çããã®ãšåãããã«ãé åãæ¥çããããã«äœ¿çšãããŸãããã®äŸã¯ãconcatããã³sliceã¡ãœããã®åäœã瀺ããŠããŸãããã®é¢æ°ã¯ãé åé åãšã€ã³ããã¯ã¹ã€ã³ããã¯ã¹ãåãåããã€ã³ããã¯ã¹indexã«ããåé€ãããèŠçŽ ãé€ããŠãåã®é åã®ã³ããŒã§ããæ°ããé åãè¿ããŸãã
function remove(array, index) { return array.slice(0, index).concat(array.slice(index + 1)); } console.log(remove(["a", "b", "c", "d", "e"], 2)); // â ["a", "b", "d", "e"]
æååãšãã®ããããã£
lengthãtoUpperCaseãªã©ã®æååããããã£å€ãååŸã§ããŸãããã ããæ°ããããããã£ãè¿œå ããããšããŠãäœãèµ·ãããŸããã
var myString = ""; myString.myProperty = ""; console.log(myString.myProperty); // â undefined
æååãæ°å€ãããŒã«å€ãªã©ã®å€ã¯ãªããžã§ã¯ãã§ã¯ãªããèšèªã¯æ°ããããããã£ãå²ãåœãŠãããšããããšã«ã€ããŠæå¥ãèšããŸããããå®éã«ã¯ããããä¿åããŸãããå€ã¯äžå€ã§ãã
ãã ããç¬èªã®çµã¿èŸŒã¿ããããã£ããããŸããåè¡ã«ã¯ã¡ãœããã®ã»ããããããŸããããããæã䟿å©ãªã®ã¯ãé åã䜿çšããåãã¡ãœãããé£æ³ããããsliceãšindexOfã§ãã
console.log("".slice(3, 6)); // â console.log("".indexOf("")); // â 4
éãã¯ãæååã®å ŽåãindexOfã¡ãœããã¯è€æ°ã®æåãå«ãæååãåãããšãã§ããŸãããé åã®å Žåããã®ã¡ãœããã¯1ã€ã®èŠçŽ ã®ã¿ã§æ©èœããããšã§ãã
console.log(" ".indexOf("")); // â 5
trimã¡ãœããã¯ãè¡ã®äž¡ç«¯ããã¹ããŒã¹ïŒããã³æ¹è¡ãã¿ãããã®ä»ã®åæ§ã®æåïŒãåé€ããŸãã
console.log(" \n ".trim()); // â
ãã§ã«æååã®é·ãã®ããããã£ã«ééããŠããŸããè¡ã®åã ã®æåãžã®ã¢ã¯ã»ã¹ã¯ãé åã®ããã«ãcharAtã¡ãœãããšãåã«äœçœ®ã®çªå·ä»ããä»ããŠååŸã§ããŸãã
var string = "abc"; console.log(string.length); // â 3 console.log(string.charAt(0)); // â a console.log(string[1]); // â b
åŒæ°ãªããžã§ã¯ã
é¢æ°ãåŒã³åºããããšãåŒæ°ãšåŒã°ããç¹å¥ãªå€æ°ãé¢æ°ã®å®è¡å¯èœæ¬äœã®ç°å¢ã«è¿œå ãããŸããé¢æ°ã«æž¡ããããã¹ãŠã®åŒæ°ãå«ããªããžã§ã¯ããæããŸããJavaScriptã§ã¯ããã©ã¡ãŒã¿ãŒã§å®£èšãããããå€ããŸãã¯å°ãªãåŒæ°ãé¢æ°ã«æž¡ãããšãã§ããŸãã
function noArguments() {} noArguments(1, 2, 3); // function threeArguments(a, b, c) {} threeArguments(); //
argumentsãªããžã§ã¯ãã«ã¯ãé¢æ°ã«æž¡ãããåŒæ°ã®å®éã®æ°ãå«ãlengthããããã£ããããŸãããŸããåå0ã1ã2ãªã©ã®ååŒæ°ã®ããããã£ããããŸãã
ãããé åã«éåžžã«äŒŒãŠãããšæãããå Žå-ããªãã¯æ£ããã§ããããã¯é åã«éåžžã«äŒŒãŠããŸããæ®å¿µãªããããã®ãªããžã§ã¯ãã«ã¯sliceãindexOfãªã©ã®ã¡ãœããããªããããã¢ã¯ã»ã¹ãé£ãããªããŸãã
function argumentCounter() { console.log(" ", arguments.length, "."); } argumentCounter("", "", ""); // â 3 .
äžéšã®é¢æ°ã¯ãconsole.logãªã©ã®ä»»æã®æ°ã®åŒæ°çšã«èšèšãããŠããŸããéåžžãåŒæ°ãªããžã§ã¯ãã®ããããã£ãã«ãŒãããŸããããã¯ããŠãŒã¶ãŒãã¬ã³ããªãŒãªã€ã³ã¿ãŒãã§ãŒã¹ãäœæããããã«äœ¿çšã§ããŸããããšãã°ãJacqueséèªã®ãšã³ããªãäœæããæ¹æ³ãæãåºããŠãã ããã
addEntry(["", " ", "", "", ""], false);
ãã®é¢æ°ãé »ç¹ã«åŒã³åºãã®ã§ãåŒã³åºããç°¡åãªä»£æ¿æ段ãäœæã§ããŸãã
function addEntry(squirrel) { var entry = {events: [], squirrel: squirrel}; for (var i = 1; i < arguments.length; i++) entry.events.push(arguments[i]); journal.push(entry); } addEntry(true, "", " ", "", "", "");
ãã®ããŒãžã§ã³ã¯ãéåžžã©ããæåã®åŒæ°ãèªã¿åããã«ãŒãã®æ®ãã®éšåïŒã€ã³ããã¯ã¹1ããéå§ããæåã®åŒæ°ãã¹ãããããïŒãæž¡ããŠãé åã«åéããŸãã
æ°åŠãªããžã§ã¯ã
Mathã¯ãMath.maxïŒæ倧ïŒãMath.minïŒæå°ïŒãMath.sqrtïŒå¹³æ¹æ ¹ïŒãªã©ã®æ°å€ãæäœããããã®ããŒã«ã®ã»ããã§ããããšãæ¢ã«èŠãŠããŸããã
Mathãªããžã§ã¯ãã¯ãé¢é£ããé¢æ°ãã°ã«ãŒãåããããã®ã³ã³ãããŒãšããŠã®ã¿äœ¿çšãããŸãã Mathãªããžã§ã¯ãã¯1ã€ã ãã§ãããå€ãšããŠäœ¿çšãããããšã¯ã»ãšãã©ãããŸããããããã¯ãã¹ãŠãããã®é¢æ°ãšå€ã®åå空éãæäŸããã ããªã®ã§ãããããã°ããŒãã«ã«ããå¿ èŠã¯ãããŸããã
ã°ããŒãã«å€æ°ãå€ããããšãããŒã ã¹ããŒã¹ãæ±æãããŸããããå€ãã®ååã䜿çšãããã»ã©ããã®ãã¡ã®1ã€ã誀ã£ãŠå€æ°ãšããŠäœ¿çšããå¯èœæ§ãé«ããªããŸããããšãã°ãããã°ã©ã å ã®äœãã«maxãšããååã䜿çšããå¯èœæ§ãéåžžã«é«ããªããŸãã JavaScriptã®çµã¿èŸŒã¿ã®maxé¢æ°ã¯Mathãªããžã§ã¯ãã«å®å šã«ããã±ãŒãžåãããŠãããããäžæžããå¿é ããå¿ èŠã¯ãããŸããã
å€ãã®èšèªã¯ããªããæ¢ããããå°ãªããšãããªãããã§ã«åã£ãŠããååã§å€æ°ãå®çŸ©ãããšããããªãã«å°ãªããšãèŠåããŸãã JavaScriptã¯ãããè¡ããŸããã®ã§ã泚æããŠãã ããã
Mathãªããžã§ã¯ãã«æ»ããŸããäžè§æ³ãå¿ èŠãªå Žåã«åœ¹ç«ã¡ãŸããcosïŒã³ãµã€ã³ïŒãsinïŒãµã€ã³ïŒãããã³tanïŒã¿ã³ãžã§ã³ãïŒãããããããã®éé¢æ°ã¯acosãasinãããã³atanã§ããæ°å€ÏïŒpiïŒ-ãŸãã¯å°ãªããšãJavaScriptã®æ°å€ã«é©åããè¿äŒŒå€-ãMath.PIãšããŠå©çšã§ããŸããïŒããã°ã©ãã³ã°ã«ã¯ãã®ãããªå€ãäŒçµ±ããããŸã-å®æ°åã倧æåã§æžãïŒã
function randomPointOnCircle(radius) { var angle = Math.random() * 2 * Math.PI; return {x: radius * Math.cos(angle), y: radius * Math.sin(angle)}; } console.log(randomPointOnCircle(2)); // â {x: 0.3667, y: 1.966}
ãµã€ã³ãã³ãµã€ã³ã«æ £ããŠããªãå Žåã¯ã絶æããªãã§ãã ããã第13ç« ã§ãããã䜿çšããŠããããããã«ã€ããŠèª¬æããŸãã
åã®äŸã§ã¯Math.randomã䜿çšããŠããŸããããã¯ãååŒã³åºãã§ãŒããã1ïŒãŒããå«ãïŒã®éã®æ°ããæ¬äŒŒä¹±æ°ãè¿ãé¢æ°ã§ãã
console.log(Math.random()); // â 0.36993729369714856 console.log(Math.random()); // â 0.727367032552138 console.log(Math.random()); // â 0.40180766698904335
ã³ã³ãã¥ãŒã¿ãŒã¯æ±ºå®è«çãªãã·ã³ïŒåãå ¥åããŒã¿ã«å¯ŸããŠåžžã«åãããã«åå¿ããŸãïŒã§ãããä¹±æ°ãçºçãããããšãã§ããŸãããã®ããããã·ã³ã¯å éšç¶æ ã§ããã€ãã®æ°å€ãä¿åããŸããä¹±æ°ãèŠæ±ããããã³ã«ãããŸããŸãªè€éãªæ±ºå®è«çèšç®ãå®è¡ããèšç®çµæã®äžéšãè¿ããŸãã圌女ã¯ãã®çµæã䜿çšããŠå éšç¶æ ãå€æŽããããã次ã®ãã©ã³ãã ãªãæ°åã¯ç°ãªããŸãã
åæ°ã§ã¯ãªãã©ã³ãã ãªæŽæ°ãå¿ èŠãªå Žåã¯ãMath.randomã®çµæã«å¯ŸããŠMath.floorïŒæ°å€ãæãè¿ãæŽæ°ã«äžžããïŒã䜿çšã§ããŸãã
console.log(Math.floor(Math.random() * 10)); // â 2
ä¹±æ°ã«10ãæãããšã0ãã10ïŒãŒããå«ãïŒãŸã§ã®æ°åãåŸãããŸããMath.floorã¯åãæšãŠãããããã0ãã9ãŸã§ã®æ°å€ãååŸããŸãã
ãŸããé¢æ°Math.ceilïŒã倩äºã-倩äºïŒïŒæãè¿ãæŽæ°ã«åãäžããïŒããã³Math.roundïŒæãè¿ãæŽæ°ã«äžžããïŒããããŸãã
ã°ããŒãã«ãªããžã§ã¯ã
ã°ããŒãã«å€æ°ãååšããã°ããŒãã«ã¹ã³ãŒãã«ã¯ããªããžã§ã¯ããšåãæ¹æ³ã§ã¢ã¯ã»ã¹ã§ããŸããåã°ããŒãã«å€æ°ã¯ããã®ãªããžã§ã¯ãã®ããããã£ã§ãããã©ãŠã¶ã§ã¯ãã°ããŒãã«ã¹ã³ãŒãã¯ãŠã£ã³ããŠå€æ°ã«ä¿åãããŸãã
var myVar = 10; console.log("myVar" in window); // â true console.log(window.myVar); // â 10
ãŸãšã
ãªããžã§ã¯ããšé åïŒãªããžã§ã¯ãã®äºçš®ïŒã«ãããè€æ°ã®å€ã1ã€ã«ã°ã«ãŒãåã§ããŸããåºæ¬çã«ãããã«ãããããã€ãã®é¢é£ãããã®ãããã°ã«å ¥ããŠããããããã¹ãŠæã§ããéããŠåå¥ã«ä¿æããããšãã代ããã«ããããé§ãåãããšãã§ããŸãã
JavaScriptã®ã»ãšãã©ã®å€ã«ã¯ãnullãšæªå®çŸ©ãé€ãããããã£ããããŸãã value.propNameãŸãã¯value ["propName"]ãä»ããŠãããã«ã¢ã¯ã»ã¹ããŸãããªããžã§ã¯ãã¯ååã䜿çšããŠããããã£ãä¿åããå€ããå°ãªãããããã®ããããã£ãä¿åããŸããé åã«ã¯éåžžãé¡äŒŒããåã®å€ã®å¯å€æ°ãå«ãŸãããããã®å€ã®ååãšããŠïŒãŒãããå§ãŸãïŒçªå·ã䜿çšããŸãã
é åã«ã¯ãé·ããªã©ã®ååä»ãããããã£ãããã€ãã®ã¡ãœããããããŸããã¡ãœããã¯ãããããã£éã§æ©èœããé¢æ°ã§ãããïŒéåžžïŒããããã£ãå±ããå€ã«å¯ŸããŠæ©èœããŸãã
ãªããžã§ã¯ãã¯ããããšããŠãæ©èœããå€ãååã«é¢é£ä»ããŸããinæŒç®åã¯ããªããžã§ã¯ãã«æå®ãããååã®ããããã£ãå«ãŸããŠãããã©ããã調ã¹ãããã«äœ¿çšãããŸããforïŒforïŒãªããžã§ã¯ãã®å€æ°åïŒïŒã«ãŒãã§åãããŒã¯ãŒãã䜿çšããŠããªããžã§ã¯ãã®ãã¹ãŠã®ããããã£ãå埩åŠçããŸãã
æŒç¿
ç¯å²åèš
ã¯ããã«ãæ°å€ã®ç¯å²ã®åèšãèšç®ãã䟿å©ãªæ¹æ³ãèšåãããŸããã
console.log(sum(range(1, 10)));
ç¯å²ã®éå§ãšçµäºã®2ã€ã®åŒæ°ãåããéå§ãšçµäºãå«ããã¹ãŠã®æ°å€ãå«ãé åãè¿ãç¯å²é¢æ°ãäœæããŸãã
次ã«ãæ°å€ã®é åãåãåãããããã®åèšãè¿ãåèšé¢æ°ãäœæããŸããäžèšã®ã¹ããŒãã¡ã³ããå®è¡ãã55ãè¿ãããããšã確èªããŸãã
ããŒãã¹ãšããŠãç¯å²é¢æ°ãè¿œå ããŠããªãã·ã§ã³ã®3çªç®ã®åŒæ°ïŒé åãäœæããã¹ãããïŒãåãããšãã§ããããã«ããŸããæå®ãããŠããªãå Žåãã¹ãããã¯1ã«çãããªããŸããç¯å²ïŒ1ã10ã2ïŒãžã®åŒã³åºãã¯[1ã3ã5ã7ã9]ãè¿ãå¿ èŠããããŸããåŒã³åºãç¯å²ïŒ5ã2ã-1ïŒã[5ã4ã3ã2]ãè¿ãããã«ãè² ã®ã¹ãããã§åäœããããšã確èªããŠãã ããã
console.log(sum(range(1, 10))); // â 55 console.log(range(5, 2, -1)); // â [5, 4, 3, 2]
é åãéã«ããŸã
é åã«ã¯ãé åå ã®èŠçŽ ã®é åºãéã«ããreverseã¡ãœããããããŸããæŒç¿ãšããŠãreverseArrayãšreverseArrayInPlaceã®2ã€ã®é¢æ°ãäœæããŸããæåã®é¢æ°ã¯åŒæ°ãšããŠé åãåããèŠçŽ ã®éé ã§æ°ããé åãäœæããŸãã2çªç®ã®æ¹æ³ã¯ãå ã®reverseã¡ãœãããšåãããã«æ©èœããŸããåŒæ°ãšããŠæž¡ãããé åå ã®èŠçŽ ã®é åºãéã«ããŸããæšæºã®ãªããŒã¹æ¹åŒã䜿çšããªãã§ãã ããã
åã®ç« ã®å¯äœçšãšçŽç²ãªæ©èœã念é ã«çœ®ããŠããå Žåãã©ã®ãªãã·ã§ã³ããã䟿å©ã ãšæããŸããïŒã©ã¡ããããå¹æçã§ããïŒ
console.log(reverseArray(["A", "B", "C"])); // â ["C", "B", "A"]; var arrayValue = [1, 2, 3, 4, 5]; reverseArrayInPlace(arrayValue); console.log(arrayValue); // â [5, 4, 3, 2, 1]
äžèŠ§
ãªããžã§ã¯ãã䜿çšããŠãããŸããŸãªããŒã¿æ§é ãæ§ç¯ã§ããŸããäžè¬çãªæ§é ã¯ãªã¹ãã§ãïŒé åãšæ··åããªãã§ãã ããïŒããªã¹ãã¯ãªã³ã¯ããããªããžã§ã¯ãã®ã»ããã§ãããæåã®ãªããžã§ã¯ãã«ã¯2çªç®ã2çªç®ãã3çªç®ãªã©ãžã®ãªã³ã¯ãå«ãŸããŸãã
var list = { value: 1, rest: { value: 2, rest: { value: 3, rest: null } } };
ãã®çµæããªããžã§ã¯ãã¯ãã§ãŒã³ã圢æããŸãã

ãªã¹ãã¯ãæ§é ã®äžéšãå ±æã§ãããšããç¹ã§äŸ¿å©ã§ããããšãã°ã{valueïŒ0ãrestïŒlist}ãš{valueïŒ-1ãrestïŒlist}ã®2ã€ã®ãªã¹ããäœæã§ããŸããããã§ãlistã¯ä»¥åã«å®£èšãããå€æ°ãžã®åç §ã§ãããããã¯2ã€ã®ç¬ç«ãããªã¹ãã§ãããããããã®æåŸã®3ã€ã®èŠçŽ ãå«ãå ±éã®ãªã¹ãæ§é ãæã£ãŠããŸããããã«ãå ã®ãªã¹ãã¯ãããããã£ã3ã€ã®èŠçŽ ã®åå¥ã®ãªã¹ããšããŠä¿åããŸãã
[1ã2ã3]ãåŒæ°ãšããŠãã®ãããªæ§é ãæ§ç¯ããarrayToListé¢æ°ãšããªã¹ãããé åãäœæããlistToArrayé¢æ°ãèšè¿°ããŸãããŸããèŠçŽ ãåãåã£ãŠæ°ãããªã¹ããäœæããããªãã³ããã«ããŒé¢æ°ãäœæããŸãããã®èŠçŽ ã¯å ã®ãªã¹ãã®åã«è¿œå ããããªã¹ããšçªå·ãåŒæ°ãšããŠåãåãããªã¹ãã®ç¹å®ã®äœçœ®ã«ããããŸãã¯æªå®çŸ©ã®èŠçŽ ãè¿ãnçªç®ã®é¢æ°ãã®ãããªèŠçŽ ã®æ¬ åŠã
nthã®ããŒãžã§ã³ãååž°çã§ãªãå Žåã¯ãååž°ããŒãžã§ã³ãèšè¿°ããŸãã
console.log(arrayToList([10, 20])); // â {value: 10, rest: {value: 20, rest: null}} console.log(listToArray(arrayToList([10, 20, 30]))); // â [10, 20, 30] console.log(prepend(10, prepend(20, null))); // â {value: 10, rest: {value: 20, rest: null}} console.log(nth(arrayToList([10, 20, 30]), 1)); // â 20
æ·±ãæ¯èŒ
==æŒç®åã¯ããªããžã§ã¯ãå€æ°ãæ¯èŒããŠãããããåããªããžã§ã¯ããåç §ããŠãããã©ããã確èªããŸããããããã³ã³ãã³ãããšã«ãªããžã§ã¯ããæ¯èŒãããšäŸ¿å©ãªå ŽåããããŸãã
2ã€ã®å€ãåããtrueãè¿ãdeepEqualé¢æ°ã¯ãdeepEqualååž°åŒã³åºããšæ¯èŒããŠããããã2ã€ã®åãå€ã§ããããããããã£ãåãå€ãæã€ãªããžã§ã¯ãã§ããå Žåã«ã®ã¿èšè¿°ããŸãã
===ã䜿çšããŠå€ãæ¯èŒããã¿ã€ãã³ã°ãããã³ã³ã³ãã³ãããšã«ãªããžã§ã¯ããæ¯èŒããã¿ã€ãã³ã°ã調ã¹ãã«ã¯ãtypeofæŒç®åã䜿çšããŸããäž¡æ¹ã®éã®ããªããžã§ã¯ãããçæãããå Žåã詳现ãªæ¯èŒãè¡ãå¿ èŠããããŸããæŽå²çãªçç±ã§çºçãã1ã€ã®æããªäŸå€ãå¿ããªãã§ãã ããããtypeof nullãããobjectããè¿ããŸãã
var obj = {here: {is: "an"}, object: 2}; console.log(deepEqual(obj, obj)); // â true console.log(deepEqual(obj, {here: 1, object: 2})); // â false console.log(deepEqual(obj, {here: {is: "an"}, object: 2})); // â true