# ã2024幎3æãJavaScript Primer æ©æèŒªèªäŒð tags: `JSPrimerð ` - [é嬿ŠèŠ](https://bootcamp.fjord.jp/regular_events/53) â»FBCå ããŒãž - [HackMDãŸãšã](https://hackmd.io/NYIcQqMUSSqfEFd9rUG7fg) - [JavaScript Primer Webçããã](https://jsprimer.net/) <hr/> ## ð 2024-3-2(å) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @karlley - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - https://jsprimer.net/basic/introduction/#what-is-javascript ãã - https://jsprimer.net/basic/variables/#summary ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - Prettierããªãã£ã¢ãšLintãåããããšRubyã®RuboCopããšããã€ã¡ãŒãžãåãããããã£ã - `strict mode`ã¯ã颿°ã®äžã«æžããšãã®é¢æ°ã§ã ãé©çšãããããã¡ã€ã«åé ã«æžããã®ããªãŒãšæã£ãŠããã®ã§ç¥ããŠããã£ã - æ°åŠçãªæå³åãã§ã®ã倿°ãã宿°ããšããã°ã©ãã³ã°çãªæå³åãã¯ã¡ãã£ãšç°ãªãããšãã話ãèããŠè¯ãã£ã - `const`ã¯ãåä»£å ¥ã§ããªã倿°ã宣èšã§ãã - `let`ã¯ãåä»£å ¥ãã§ãã倿°ã宣èšã§ãã - `var`ã¯ãåä»£å ¥ãã§ãã倿°ã宣èšã§ããããããã€ãã®åé¡ãç¥ãããŠãã - `var`ã¯æ°ããæžãã³ãŒãã§äœ¿ããªãã»ãããã - webçã§èªãã§ããšããã«ã¡ã¢ããã®ãã³ããã§ããŠããŸããè¯ãã®ãæªãã®ãããã - ååéå¬ã§ããŠããã£ãïŒãæ¡å ãã°ãã°ãã ã£ãã®ã«æ¥ãŠãã ãã£ãŠããããšãããããŸãð - @karlley - 倿°ã宿°ã®å®£èšã®ã€ã¡ãŒãžã¯ãã©ã®ã¡ã¢ãªã«å®çŸ©ããã®ãã - constã§ã®å€æ°å®çŸ©ã¯åæå€ã®çç¥ã¯ã§ããªã - ç©çã®æžç±ããªãããšã«æ £ããªããã©PCã ãããã°è¯ãã®ã§æ¥œïŒ - norisuke - constã¯å®æ°ã®ããšã ãšèªèããŠãããããåä»£å ¥ã§ããªã倿°ãã§ãããšããããšããããã - @haruguchi - 仿¥èŠåºã3ã€åçµãã£ãã®ã§ããš10åã§çµããïŒïŒïŒïŒ:thinking_face: - ð - const ã§èšè¿°ãããããšãã£ãŠå€ãå¿ ãå€ãããšã¯éããªã(ãªããžã§ã¯ãã¯å€æŽã§ãã) - ä»åºåŒµã§çŠäºã«ãããã§ããJSPrimerã¯æ¬ãªããŠããããäŸ¿å© - @yumiya - `strict mode`ã¯åé ã«æžããŠJavaScriptãã¡ã€ã«å šäœã«é©å¿ããã ãã§ãªãã颿°å ã«èšå®ã§ããããšãç¥ããŸãã - ã[å®è¡ã³ã³ããã¹ã](https://jsprimer.net/basic/introduction/#script-module)ãã®éããããããããªãã£ã - 倿°ã宣èšããéã«ã¯,(ã«ã³ã)ã䜿ããåæã«è€æ°å®£èšã§ãã - `const`ã§ãªããžã§ã¯ãã宣èšããå Žåããªããžã§ã¯ããã®ãã®ã®å€ã倿Žããããšã¯å¯èœ - @moegi29 - strictã¢ãŒãã ãšã©ãããã§ãã¢ã¯ã»ã¹ã§ãã倿°ãæé€ããŠããã - æ°åŠã®å€æ°ã»å®æ°ãšããã°ã©ãã³ã°ã®å€æ°ã»å®æ°ã¯ã¡ãããã® - ç§ã¯æµæ¯å¯¿åºåŒµã§ããæ¬ç¡ããŠåå ã§ãã茪èªäŒã¯è¯ãã§ãã - :nakama: - https://railsgirls.com/tokyo.html <hr/> ## ð 2024-3-3(æ¥) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @yumiya - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - https://jsprimer.net/basic/read-eval-print/ ãã - https://jsprimer.net/basic/data-type/#integer-literal ãŸã§ ### 次å - https://jsprimer.net/basic/data-type/#floating-point-number-literal ãã ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - REPLïŒã¬ãã«ã»ãªãã«ïŒã¯ãã³ãŒããè©äŸ¡ããŠçµæã衚瀺ããéçºè åãã®æ©èœ - ãšã©ãŒã«ã¯æ§æãšã©ãŒãšå®è¡æãšã©ãŒããã - æ§æãšã©ãŒã®äŸïŒ`console.log (1`ãïŒéãã«ãã³ããªãïŒ - å®è¡æãšã©ãŒã®äŸïŒå€æ°xãç¡ãã®ã«`console.log(x)`ãå®è¡ããæã«èµ·ãã - ããšã©ãŒãWebã³ã³ãœãŒã«ã«è¡šç€ºãããŠãããªãã°ããã®ãšã©ãŒã¯ä¿®æ£ã§ããŸããããšããäžæãè¯ãã£ã - ããŒã¿åã¯ãããªããã£ãåãšãªããžã§ã¯ãã®2çš®é¡ãã - ããªããã£ãåïŒåºæ¬åïŒ - ãªããžã§ã¯ãïŒè€ååïŒ - `console.log(typeof null); // => "object"`ãããªãã§ïŒãšæã£ããæ³šéããã£ã - > JavaScriptãæåã«Netscapeã§å®è£ ãããéã«typeof null === "object"ãšãªããã°ããããŸããããã®ãã°ãä¿®æ£ãããšãã§ã«ãã®æåã«äŸåããŠããã³ãŒããå£ãããããä¿®æ£ãèŠéããçŸåšã®æåã仿§ãšãªããŸããã 詳ãã㯠https://2ality.com/2013/10/typeof-null.html - @genny - ãšã©ãŒã¯å€§ããåããŠ2çš®é¡ãã - æ§æãšã©ãŒãšå®è¡æ(ã©ã³ã¿ã€ã )ãšã©ãŒ - ããŒã¿åã¯å€§ããåãããšïŒã€ã«åé¡ããã - ããªããã£ãåãšãªããžã§ã¯ãå - ããªããã£ãå - äžåºŠäœæãããããã®å€èªäœã倿Žã§ããªã(immutable) - ãªããžã§ã¯ãå - äžåºŠäœæããåŸãããã®å€èªäœã倿Žã§ãã(mutable) - å€ãžã®åç §ãçµç±ããŠæäœãã->åç §åã®ããŒã¿ - ãªãã©ã« - ããã°ã©ã äžã§æ°å€ãæååãªã©ãããŒã¿åã®å€ãçŽæ¥èšè¿°ã§ããããã«æ§æãšããŠå®çŸ©ããããã® - ããšãã°ã"ãš"ã§å²ãã ç¯å²ãæååãªãã©ã«ã§ãããã¯æåååã®ããŒã¿ã衚çŸããŠãã - ãµã¯ãµã¯é²ãã§ãïŒ - @yumiya - Firefoxãã©ãŠã¶ã®éçºè ããŒã«ãã³ã³ãœãŒã«ãã¿ãã§JavaScriptãšã©ãŒã確èªãããšãMDNã®è§£èª¬ããŒãžãžã®ãªã³ã¯ã衚瀺ãããŠäŸ¿å©ã ãšæãã - ã³ã³ãœãŒã«ã§ã³ãŒããè©äŸ¡ããŠçµæã衚瀺ãããæ©èœããREPLïŒreadâevalâprint loopïŒããšåŒã¶ - ããªããžã§ã¯ãåã - è€æ°ã®ããªããã£ãåã®å€ããªããžã§ã¯ãã®éåã§ãã - å€ãã®ãã®ã§ã¯ãªãå€ãžã®åç §ãçµç±ããŠãã - @karlley - ãšã©ãŒã¡ãã»ãŒãžã®è¡ãåã®ã«ãŠã³ã - è¡: 1ããã¹ã¿ãŒã - å: 0ããã¹ã¿ãŒã - ããŒã¿åã®çš®é¡(ãã€ãã©ã£ã¡ãã©ã£ã¡ãåãããªããªãð) - ããªããã£ãå -> ã€ãã¥ãŒããã«(倿Žäžå¯) - ãªããžã§ã¯ãå -> ãã¥ãŒããã«(倿Žå¯) - ãªãã©ã«: ããŒã¿åã®å€ãçŽæ¥èšè¿°ã§ããããã«æ§æãšããŠå®çŸ©ããããã®(æååã®`''`ãšã) - REPLã¯ãã¬ãã«ããããªãã«ãã§äŒãããã - é²ãã¹ããŒããæ©ãã®ã§é²æãæãããããŠè¯ãïŒ <hr/> ## ð 2024-3-9(å) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @moegi - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - https://jsprimer.net/basic/data-type/#floating-point-number-literal ãã - https://jsprimer.net/basic/operator/#minus-operator ãŸã§ ### 次å - https://jsprimer.net/basic/operator/#multiplication-operator ãã ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - `.123`ã¿ãããªæžãæ¹ã¯å¯èœã ãã©ãçŽããããã®ã§`0.123`ã§è¯ããã - BigIntã¯å€§ããªæ°åïŒãã¡ã现ããå°æ°ç¹ãïŒãæ£ããæ±ãã - `1_000_000`ã¿ãããªã®ã¯Rubyã§ããã£ãæ°ãããïŒèªåã§äœ¿ã£ãããšãªãïŒ - JSã§ã¯ã·ã³ã°ã«ã¯ãªãŒããšããã«ã¯ãªãŒãã®åœ¹å²ã¯å šãåãïŒRubyã§ã¯ã¡ãã£ãšéã£ãïŒ - JSã§ã¯ããã«å ããŠããã¯ã¯ãªãŒãã䜿ããããããã¡ãã£ãšã ãRubyã®ããã«ã¯ãªãŒãã«äŒŒãŠãããšãããããšæã£ãïŒåŒå±éã£ãœãããšãã§ãããšããæ¹è¡ãã§ãããšãã¯éãç¹ãïŒïŒ - æååã倿°ã«æ ŒçŽãããšã`const str = new String("æåå");`ãšããŠããããã ãã©ãã·ã³ãã«ã«`const str = "æåå";`ã£ãŠããã°åºæ¬çã«ã¯è¯ããããïŒ - åãæèãããšããšãã«å€ãã£ãŠããã®ã ãããð€ - èäžãçããŠæ¥éªšé¢ã«éã£ãŠããŸãð€ èäžçãšè±ç²çïŒãããã¿ïŒã®çžæ§ã¯ææªâŠã - @genny - ã«ãã³ã®èªã¿æ¹åçºèŠ - `{}`ã¯äžãã£ã - `[]`ã¯å€§ã«ãã³ - ç¬ç¿ã§ãåºç€ã§è©±ããŸããããç¬ - https://www.web-s.biz/wpr/archives/8240 - è±èªã§ã¯äœãŠèªããã ãã - ãªããžã§ã¯ãã®ããããã£ãåç §ããæ¹æ³ã¯äºçš®é¡ãã - ãããèšæ³ `obj.key` - ãã©ã±ããèšæ³ `obj[key]` - BigIntã¯ãéã®èšç®ãšããããšãã¯æèããæ¹ããããšããã®ã¯ãªãã»ã©ããšæã£ã - å®å šã«è¡šããæå€§å€: 9007199254740991 - @karlley - æååã®`''`ãš`""` ã¯å šãåãåäœ - ããªããã£ã: æååãæ°åãçåœå€çã®å€æŽã§ããªããã® - æååå ã§æ¹è¡ã¯åå䜿ããªãã-> \nããã³ãã¬ãŒããªãã©ã«ã䜿ã - js primerèªãã®2åç®ã§ããã1床ç®ã«èªãã æã®å€§å€ããæãåºããŠãã... - ãªã¬ã©ã«ãšããªããžã§ã¯ããšãåãšãèãæ £ããªãèšèã§çè§£ããã®ã«ç²ããð - @moegi29 - `0.123`ã¯0ãçç¥ããŠæžãããã©çç¥ããæžããã»ããè¯ã - `_123`ã®ããã«æ°åã®åã«_ãã€ãããšå€æ°ãšããŠæ±ãã - ããªããã£ãåã®å€ã¯ãäžåºŠäœæããããã®å€èªäœã倿Žã§ããªããšããã€ãã¥ãŒã¿ãã«ïŒimmutableïŒã®ç¹æ§ãæã€ã倿Žã§ãããã®ã¯ãã¥ãŒã¿ãã«ã - undefinedã¯ãã ã®ã°ããŒãã«å€æ°ã <hr/> ## ð 2024-3-10(æ¥) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @sugiwe - ãã©ã€ããŒ: @karlley ### ð èªãã ãšãã - https://jsprimer.net/basic/operator/#multiplication-operator ãã - https://jsprimer.net/basic/operator/#bit-not ãŸã§ ### 次å - https://jsprimer.net/basic/operator/#left-shift ãã ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - 以äžã®ãã€ãã¹ã®ã€ãæ¹ãæŽæ°ãšå°æ°ç¹æ°ãæ··ãã£ãæãªã©ãRubyãšJSã§èšç®çµæãç°ãªãããšããŸãŸãããããªã®ã§æ°ãä»ãã - `console.log(9 % 2); // => 1` - `console.log(-9 % 2); // => -1` - `console.log(9 % -2); // => 1` - `console.log(-9 % -2); // => -1` - ã€ã³ã¯ãªã¡ã³ãæŒç®åã»ãã¯ãªã¡ã³ãæŒç®åã¯ãªãã©ã³ãã®åã«çããåŸãã«çããã§è©äŸ¡ã®é ãç°ãªãã®ã§æ³šæ - `n = n + 1` - `n++`` ããã㯠``++n` - Rubyã ãš`n += 1`ã£ãŠæžãã〠- JSã§ã¯åºæ¬çã«ã¯`==`ãã`===`ã䜿ããRubyãšãããããããªãã - ãããæŒç®åããããããäžã€äžã€çºããŠãåã«ã¯ç®æ°çãªé¢çœããæãããã ãã©ãã³ãŒããèªã¿è§£ããŠãããšãã«ããããããã ã - @karlley - èšèªæ¯ã«èšç®çµæãéãããšã«é©ãã - jsã®æ°åã¯numberåãããªã - ãã€ãã¹ãå«ãŸããèšç®ã«ã¯æ³šæ - 2ã®è£æ°ã¯ãå転ããŠ1è¶³ãã - èªç¶èšèªã®ããŸãã¯ãã¯æä»çè«çåãšããäŸãããšãŠãåãããããã£ãïŒ - ããããšèããšè麻ç¹ãåºããã«ãªãç¬ - ããŒããŒç³»ã¯åç»ãšãå³ãšãã§çè§£ããŠãã£ãæ¹ãèªåã«ã¯åã£ãŠããã - haruguchi - ãããå«ããæ«æãããã€ã³ãæŒç®å - bitæŒç®ã¯ããã°ã©ãã®åã¿ - JSã¯æé»çå倿ãå€ããã°ããããã®ã§é¢çœã(ã ããTSãå¿ èŠãšãããŠãã) - 2ã®è£æ°ã¯å転ããŠ1ãããè¶³ã(nbitã®å Žå2^(n-1)ãæ³ãšããåååŒãäœã) - ãããã¯æè©®ãæ±ºãããã倧ããã®ç®±ã«0ãš1ãè©°ãŸã£ãŠãã ã <hr/> ## ð 2024-3-16(å) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @karlley - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - https://jsprimer.net/basic/operator/#left-shift ãã - https://jsprimer.net/basic/operator/#and-operator ãŸã§ ### 次å - https://jsprimer.net/basic/operator/#or-operator ãã ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - å·Šã·ããæŒç®ã¯2åããŠãã - å³ã·ããæŒç®ã¯å²2ããŠïŒ1/2åããŠïŒåãæšãŠã - ãŒãåãã·ããæŒç®ã¯äœ¿ãã·ãŒã³ã¯ããŸããªãããã ãã©é ã«å ¥ããšã - åå²ä»£å ¥ã¯ãã¿ãŒã³ããã - ANDæŒç®åïŒ`&&`ïŒã¯ã巊蟺ããé çªã«è©äŸ¡ããŠè¡ã£ãŠãå šéštrueã«ãªããã©ããæ±ºãŸã£ãæç¹ãã®è©äŸ¡ãè¿ãã`&&`ãããã€ç¹ããŠãäžç·ãïŒå¹Ÿã€ã§ãç¹ãããããã©èªã¿ãããã«æ°ãä»ããïŒ - falseã£ãœãå€ãfalsyãšãããRubyã§ã®falseãè¿ããã®ãšç°ãªãã®ã§æ°ãä»ãã - æž©ãããªã£ãŠè±ç²ãå æ°ãªæ°ãããŠã€ãã - @karlley - å³ã·ãããå·Šã·ãã - 2鲿°ã§å·Šã·ãã -> *2 - 2鲿°ã§å³ã·ãã -> /2 - ãªããžã§ã¯ãã¯ããŒãå€ãåãå Žåã¯ããŒãçç¥ããŠè¡šçŸã§ãã - `{key: key} -> {key}` - ANDæŒç®å - å·Šããé ã«è©äŸ¡ - è©äŸ¡ããçµæãæ±ºãŸã£ãæç¹ã®å€ãè¿ã - ãããæŒç®åãã£ãšçµãã£ã..?(é£ããïŒ) - åºç€çãªéšåãçŽè§£ããŠçè§£ããŠããæããæ¥œããã£ãïŒ - haruguchi - ã·ããæŒç®åã®ããããšããè¡çºã¯å€ã2å, 1/2å(å²ã2)ããŠãããšã«å¯Ÿå¿ãã - åå²ä»£å ¥ã¯èŠã¯ãã¿ãŒã³ããã - ãªããžã§ã¯ãã®åå²ä»£å ¥ã¯çç¥èšæ³ãçšããããã®ã§æ³šæ`{ foo: foo } â {foo}` - && ã¿ãããªåœé¡ïŒè«ç)èšå·ã¯ç絡è©äŸ¡ - åéžæ°å¹¹ç·ã仿¥ééãã(ããã) <hr/> ## ð 2024-3-17(æ¥) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @yumiya - ãã©ã€ããŒ: @karlley ### ð èªãã ãšãã - https://jsprimer.net/basic/operator/#or-operator ãã - https://jsprimer.net/basic/operator/#conclusion ãŸã§ ### 次å - https://jsprimer.net/basic/implicit-coercion/ ãã ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - `||`ã¯å·ŠèŸºãtrueãªã巊蟺ãè¿ãã巊蟺ãfalseãªãå³èŸºã®è©äŸ¡çµæãè¿ã - 巊蟺ã®è©äŸ¡ã¯çåœå€ã«æé»çãªå倿ããã - `!!`ã¯çåœå€ãè¿ãããã®ãã¯ããã¯ã ãã©ãä»ã®æ¹æ³ã§æžãããã©ããã¯æ€èšãããšè¯ãããã - `??`æŒç®åïŒããªãã·ã¥ã³ã¢ã¬ã·ã³ã°ïŒïŒãåã«ãèªãã ã¯ãã ãã©å¿ããŠããããã - ããªã«ãå ¥ããªãå Žåã«ã¯ããã©ã«ãå€ãè¿ããããã©ã`0`ãfalseã§ãªãã0ããšããŠæ±ãããå Žåããªã©ã«`||`ã䜿ããªãã®ã§ãããããæã«`??`ã䜿ãã - äžé æŒç®åãã¡ãã£ãšäŸã§æ··ä¹±ãããã©ã¡ãã£ãšããifæãã·ã³ãã«ã«æžããã£ãŠããšã§Rubyã§ã¯å²ãšæ £ããŠããã®ã§ãåæ§ã«èããŠäœ¿ã£ãŠãããã - letã¯åæå€ãå®çŸ©ããªããš`undefined`ã«ãªãããconstã¯åæå€ãå®çŸ©ããªããšãšã©ãŒã«ãªãã®ã§æ³šæ - ãã€ã¬ããããŒããŒã®äŸããããããã£ãðœ ãã - https://nlab.itmedia.co.jp/nl/articles/2201/10/news048.html - @yumiya - ORæŒç®åãNOTæŒç®åã§ã¯ãæ¡ä»¶ã巊蟺ããé ã«è©äŸ¡ãããŠãã - ORæŒç®åã§ã¯æé»çãªå倿ãè¡ãããã®ã§ã巊蟺ã«falsyãªå€ïŒ0,null,""ãªã©ïŒãå ¥ããšå³èŸºã®å€ãè¿ãã®ã§æ³šæ - NOTæŒç®åïŒ!ïŒã䜿ããšããªãã©ã³ãã®è©äŸ¡çµæãå転ããçåœå€ã«ãªã - !true -> false - !false -> true - `!`ã¯è€æ°éãããããããããã«ãããªãã®ã§å€çšããªãã»ããè¯ããã(äŸïŒ!!!true) - å€ã®ããã©ã«ãå€ãæå®ããå Žåã«ã¯ãORæŒç®åã§ã¯ãªããNullish coalescingæŒç®å(??)ã䜿ãã»ãããã - coalesceã®ã«ã¿ã«ãèªã¿ã¯ãã³ãŠã¢ãªã¹ãã®ãã - åèïŒ[ãã€ã¬ããããŒããŒã§ããã°ã©ãã³ã°ã®å€æ°ãçè§£ããæš¡åãåãããããããçµ¶åŠããç§éžããšè©±é¡ã«](https://nlab.itmedia.co.jp/nl/articles/2201/10/news048.html) - @karlley - `()` ã¯äžçªåªå 床ãé«ã - æŒç®åã®åªå 床ãåãããªããªã£ãã以äžã§ç¢ºèªãã - https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table - 倿°å®çŸ©æã®åæå€ã«ã€ã㊠- var: äžèŠ - let: äžèŠ - const: å¿ èŠ ``` const a; Uncaught SyntaxError: Missing initializer in const declaration â åæå€ãå¿ èŠã£ãŠæžããŠã ``` - 倿°ã¯ãã€ã¬ããããŒããŒãã€ã¡ãŒãžããŠèŠãããšè¯ãð§» - `??`ãšãã`||` ãã ãã ãæ··ä¹±ããŠããã®ã§æŽçããŠãããð - consoleã§è²ã 詊ããªããèªã¿é²ããã®ã¯çè§£ãããããæ¥œããïŒ <hr/> ## ð 2024-3-23(å) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @sugiwe - ãã©ã€ããŒ: @karlley ### ð èªãã ãšãã - https://jsprimer.net/basic/implicit-coercion/ ãã - https://jsprimer.net/basic/implicit-coercion/#nan-is-number-typeããŸã§ ### 次å - https://jsprimer.net/basic/implicit-coercion/#unsolved-problem ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - ãæé»ãã®å察ã¯ãæç€ºã - ç䟡æŒç®å`==`ã¯ããªãã©ã³ãå士ãåãåãšãªãããã«æé»çãªå倿ããã - åºæ¬çã«ã¯`==`ã§ãªã`===`ã䜿ããšè¯ããã - Booleanã³ã³ã¹ãã©ã¯ã¿ãStringã³ã³ã¹ãã©ã¯ã¿ãªã©ãã³ã³ã¹ãã©ã¯ã¿ã¯ãªããžã§ã¯ãã»ããªããã£ããäœã颿° - `Number(input)`ã¯æååãšããŠinputã«å ¥ã£ãæ°åãæ°å€åã«å€æããã`Number("hoge")`ãªã©ã®ããã«æååãå ¥ãããš`NaN`ãè¿ã - `NaN`ã¯èªåèªèº«ãšãã€ã³ãŒã«ã«ãªããªãã`NaN === NaN`ãfalseã«ãªããšããå€ãã£ãæ§è³ªãæã€ - NaNãèšç®éäžã«æ··ãããšãã以éå šéšNaNã«ãªã£ã¡ãããå°ã£ããã€ã - IEEE 754 ã¯ããã°ã©ãã¯èªãã§ããã - https://ja.wikipedia.org/wiki/IEEE_754 - Gennyããã®ç¹å¿æãæ©ãèœã¡çããšè¯ããªð - haruguchi - æé»çãªå倿ã¯ãã°ã®æž©åºã«ãªãããã - ã§ããã ãæç€ºçã«å倿ãã(ã³ã³ã¹ãã©ã¯ã¿ã)ãŸãã¯===ã§å³å¯ã«ãããæ¯èŒãã - NaNã¯IEEE754ã§èŠå®ãããŠãã(ç¥ããªãã£ã) - ä¹ ããJSè§Šã£ãŠãªãããå¿ããŠããã©ãã£ã±ãå¶æªãªèšèšã ãªãw - karlley - `==`ã¯ãªãã©ã³ããåãåã«ãªãããã«å€æããã-> æé»çãªå倿 - æé»çãªå倿ã¯`==` 以å€ã§ãèµ·ãã - ã³ã³ã¹ãã©ã¯ã¿: ãªããžã§ã¯ããããªããã£ããäœã颿° - `parseInt` ã¯æ°å€ãæœåºãã - NaNãçºçãããšèšç®ã§ããªããªã - NaNã¯èªåèªèº«ãšãäžèŽããªã(æªã ã«ã€ã¡ãŒãžãæ¹§ããŠããªãð€) - ã ãã ãé£ãããªã£ãŠããã®ããã£ã¡ãæããð - ã³ã³ãœãŒã«ã§å®éã«æãåããæ¹ãçè§£ãé²ãæ°ããã <hr/> ## ð 2024-3-24(æ¥) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @hoge - ãã©ã€ããŒ: @hoge ### ð èªãã ãšãã - from - https://jsprimer.net/basic/implicit-coercion/#unsolved-problem - to - (https://jsprimer.net/basic/function-declaration/#function-destructuring) ### 次å - https://jsprimer.net/basic/function-declaration/#first-class-function ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - 空æååãšã¯ãStringåã§æåé·ã0ã®å€ãããšèšãæãããã - Booleanã¯æ¥œãããããã®å倿ã§ã宿ã«äœ¿ããšæå³ããªãçµæã«ãªãå Žåããã - 颿°å®£èšã®æã¯ãä»®åŒæ°ãã§é¢æ°åŒã³åºãã®æã¯ãåŒæ°ããèšãæ¹ãéã£ãŠæ··ä¹±ãããã©ããããããããããããïŒ - JavaScriptã§ã¯ã颿°ã«å®çŸ©ããä»®åŒæ°ã®åæ°ãšå®éã«åŒã³åºãããšãã®åŒæ°ã®åæ°ãéã£ãŠãã颿°ãåŒã³åºãã - åŒã³åºãæã®åŒæ°ãå°ãªããšãïŒundefinedãä»£å ¥ããã - åŒã³åºãæã®åŒæ°ãå€ããšãïŒå€ãåã¯ç¡èŠããã - `Rest parameters`ã¯æ®äœåŒæ°ãšãèšããå¯å€é·åŒæ°ã§äœ¿ãã - `arguments`ãå¯å€é·åŒæ°ãæ±ãæ¹æ³ãšããŠãããã©ãã³ãŒããå°ããããã«ãããªãã®ã§åºæ¬çã«ã¯äœ¿ããªãæ¹ãè¯ãããïŒ`Rest parameters`ã䜿ããå Žåã¯`Rest parameters`ã䜿ã - 颿°ã®åŒæ°ã«åå²ä»£å ¥ã䜿ããšãããé£ããã£ã⊠- @yumiya - 颿°ã«æž¡ãåŒæ°ã¯ã"ä»®"åŒæ°ããšåŒã°ãã - 颿°å®çŸ©æã«æž¡ãããåŒæ°ã®æ°ãå®ãŸã£ãŠããªããããä»®ããã€ããŠããïŒ - åŒã³åºãåŒæ°ãè¶³ããªãå Žåã¯ãè¶³ããªãä»®åŒæ°ã«ã¯`undefined`ãä»£å ¥ããã - åŒæ°ã®æ°ãå®ãŸã£ãŠããªãå Žåã¯"å¯å€é·åŒæ°"ã䜿çšãã - ä»®åŒæ°åã«ã`...`ããã€ããããšã§ãRest parametersãšããŠå€æ°ã«é åãä»£å ¥ããŠã颿°ã«æž¡ãããšãã§ãã - é åãå±éããŠæž¡ãéã¯ãSpreadæ§æã䜿çšãã - Spreadæ§æïŒã`...é åãæ ŒçŽããã倿°` - [颿°ã®åŒæ°ãšåå²ä»£å ¥](https://jsprimer.net/basic/function-declaration/#function-destructuring)ããããã«ããã£ã - @karlley - 颿°å®çŸ©éšã®åŒæ°ã¯ãä»®åŒæ°ãã颿°åŒã³åºãéšã¯ãåŒæ°ããšåŒã°ãã - 颿°ã¯returnãçç¥ãããšundefinedãè¿ã - 颿°å®çŸ©éšã®ä»®åŒæ°ã®å®çŸ©æã®ä»®åŒæ°ãããåŒã³åºãæã®åŒæ°ã®æ°ãå€ãå Žåã¯ããµããåŒæ°ã¯ç¡èŠããã - Rest parameters(`...`)ã§å¯å€æ§åŒæ°ãèšå®ã§ãã - arguments - Array Likeãªãªããžã§ã¯ã - é åã§åŒã¹ã - Arrayã®ã¡ãœããã¯åŒã¹ãªã - Rest parameter䜿ããå Žåã¯ãã£ã¡ã䜿ã - 倿°ãå®çŸ©ããŠããã€ã¡ãŒãž - ãªããžã§ã¯ããåºãŠãããšæ¥ã«é£ãããªã... - é²ã¿ããšãŠãè¯ãæ°ãããð <hr/> ## ð 2024-3-30(å) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @sugiwe - ãã©ã€ããŒ: @karlley ### ð èªãã ãšãã - from - https://jsprimer.net/basic/function-declaration/#first-class-function - to - https://jsprimer.net/basic/statement-expression/#isolate-block-statement ### 次å - https://jsprimer.net/basic/statement-expression/#function-statement-and-function-expression ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - 颿°ã¯ãªããžã§ã¯ãã§ã倿°ã«ä»£å ¥ããã倿°ã®åŒæ°ãšããŠæž¡ãããšãã§ãã - 颿°ãå€ãšããŠå€æ°ã«ä»£å ¥ããã®ãã颿°åŒãã§ãããã ãšé¢æ°åïŒfunctionã®ããå³ã«æžããã€ïŒã¯çç¥ã§ããã倿°åã§åç §ã§ããããã - äžæ¹ã倿°ã䜿ããªã颿°å®£èšã§ã¯ã颿°åã¯çç¥ã§ããªãïŒãã®é¢æ°ãåç §ããããã®ååãäœãã€ããªãããšã«ãªã£ã¡ããããïŒ - ã€ãŸãã颿°åŒãã§ã¯ãååã®ãªã颿°ã倿°ã«ä»£å ¥ããŠäœ¿ã£ãŠãããããã®ãååãæããªã颿°ã®ããšããç¡å颿°ã»å¿å颿°ããšåŒã¶ã - ã¡ãªã¿ã«ãã颿°åŒãã§ã颿°åãä»ããããšãã§ãããã§ã颿°ã®å€ããã¯ãã¹ãããã®é¢æ°ã®äžã§ååž°çã«åŒã³åºãéãªã©ã«å©çšãã - 颿°åŒã®æžãæ¹ãšããŠä»¥äžã®ïŒã€ããã - functionããŒã¯ãŒãã䜿ã£ãæ¹æ³ - `=>` Arrow Function ã䜿ã£ãæ¹æ³ - ã³ãŒã«ããã¯é¢æ°ã¯ãåŒæ°ãšããŠæž¡ããã颿°ã®ããšã - ã³ãŒã«ããã¯é¢æ°ãåŒæ°ãšããŠäœ¿ã颿°ãã¡ãœããããé«é颿°ãšåŒã¶ - ãã®èŸºããçç¥èšæ³ãªã©ãçžãŸã£ãŠå šç¶èŠããããŠããªãããã - åŒã¯ãå€ãçæããŠå€æ°ã«ä»£å ¥ã§ãããã®ã - æã¯ãåŠçãã1ã€ã®ã¹ãããã - åŒã¯æã«ãªãããïŒåŒæãšåŒã¶ïŒãæã¯åŒã«ãªããªã - æã®ãå¡ãšããŠå€§ãããã®ã«ãªãããšãå€ãã®ããªïŒãšæã£ããæã®äžã®äžéšåãšããŠåŒãå ¥ã£ãŠãããã - ã¡ãã£ãšç ãã£ããããã·ã£ã³ãšããã - @karlley - ã³ãŒã«ããã¯é¢æ°ãåŒæ°ãšããŠäœ¿ã颿°ãã¡ãœãã -> é«çŽé¢æ° - 颿°åŒã䜿ããš`function` ãçç¥ã§ãã - ã¢ããŒé¢æ°ã¯æ¡ä»¶ã«ãã£ãŠ`()`ã`{}`ã`return` ãçç¥ã§ãã - åŒæ°ã1〠- 颿°ã®åŠçã1ã€ã®åŒ - ä»£å ¥ã§ãããã®: åŒ - ä»£å ¥ã§ããªããã®: æ - åŒãæã«ãããã®: åŒæ(âããããã£ãŠããªã...) - jsã ãã¶å¿ããŠããŠããããšã«æ°ã¥ããð - ã¯ããjsã®ãã©ã¯ãã£ã¹ã«é²ã¿ããïŒ - 2人ã§ã®èŒªèªäŒã«ããŠã¯é²ãã¹ããŒããæ©ãã£ãïŒããå°ãæãäžããŠèªã¿é²ããŠãããããïŒïŒ - jsãžã®æææã¯ç¡ããªã£ããã©ãã©ãŒãã£ãŠã奜ãã ãšã¯æããªãã®ã§ã©ãã«ãå æããã - æ¥æ¬èªããããã... ### â ã¡ã¢ èªã¿æäº€ä»£ã®ã¿ã€ãã³ã°ã§ ããããŸã§ã§äœããããŸããïŒãããåºæ¬èãããšã«ããïŒ <hr/> ## ð 2024-3-31(æ¥) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @karlley - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - from - https://jsprimer.net/basic/statement-expression/#function-statement-and-function-expression - to - https://jsprimer.net/basic/loop/#do-while-statement ### 次å - https://jsprimer.net/basic/loop/#for-statement ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - æã¯ã»ãã³ãã³ã§çµãããã©ããããã¯ã§çµããæã§ã¯ã»ãã³ãã³äžèŠ - ifæã¯ãããã¯ã®èšå·`{}`ãçç¥ã§ããããããã©çŽããããã®ã§åºæ¬çã«ã¯çç¥ããªã - JSã¯`else if`ãRubyã¯`elsif`ã - ãã¹ããæ·±ããªã£ãŠãããã·ã³ãã«ã«æžããªããèãçŽã - switchã¯`break;`ã§æããïŒå¿ãããšããã®ç¶ãã®caseãå®è¡ããã¡ããïŒ - ãªã®ã§switchã¯é¢æ°ã«ã©ãããã圢ã§äœ¿ããšã颿°ã§ããã°`return`ã§æ»ãå€ãæã£ãŠæããã®ã§ã`break;`ããããªããæžãããã - `do while`ã¯ãæ¡ä»¶ãåŸåŽã«æ¥ãŠã1åç®ã¯æ¡ä»¶ãžã®ãããã«é¢ä¿ãªãå®è¡ããããRubyã«ã¯ãªãæžãæ¹ã - 話è åãæ¿ãã®ã¿ã€ãã³ã°ã§æ¯ãè¿ãã®ãè¯ãããïŒ - @karlley - Chromeã®REPLã¯ãEnterã§ç°å¢ããªã»ãããããã®ã§constã§ã®å宣èšã§ãã - Enterããã°constã§å€æ°ãããã«å®£èšã§ããã®ã§äŸ¿å© - å宣èšã§ããããã«ãªã£ãŠããã€ã¡ãŒãž - ã©ããåŒã§ã©ããæãªã®ãæèããŠã³ãŒããæžãããšã倧äº(ãŸã ã¡ãã£ãšãã¯ããšããŠããã®ã§åŒãšæãèªã¿çŽãã...) - 倿°ã«ä»£å ¥ã§ãããåŒãããã®ç°¡æçãªèãæ¹ã§è¯ããã - switchã¯é¢æ°ãã©ããããã€ã¡ãŒãžã§äœ¿ã - breakãreturnã«çœ®ãæããã€ã¡ãŒãž - ããããŸã§äœããããŸããïŒãã¯è²ã æ·±æããã®ã§è¯ããïŒ - haruguchi - ãããã¯ã§çµããæã¯ã»ãã³ãã³äžèŠ - åºæ¬çã«ã¯ã»ãã³ãã³ã¯èªåã§æ¿å ¥ããçãã€ããã»ãããã(ãã°ããã) - å¶åŸ¡ãããŒã¯RubyãšåãæããSwitchæã®çã匷ãã - ããæãã§é²ãã§ããã«ãŒãã¯ã¡ãã£ãšé£ããããã ãã©ã - èäžå ç«çæ³ãã¡ãããšæ¯æ¥ã§ãã人éã«ãªãããã - æšæãéæã§æ²çžè¡ã£ããã§ãã(RubyKaigiã®äžèŠ)æãã£ãã <hr/>
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up