# ã2024幎4æã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-4-6(å) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @GennyBoy - ãã©ã€ããŒ: @karlley ### ð èªãã ãšãã - from - https://jsprimer.net/basic/loop/#for-statement - to - https://jsprimer.net/basic/object/#object-instance-object ### 次å - https://jsprimer.net/basic/object/#property-access ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - breakæã®äŸã®ãšããã§ã颿°ã䜿ãå Žåã¯returnããªããšãããªãã£ãŠãšãããåã«ãåºãŠããæ°ããããªãšæã£ãŠèªãã§ãã - someã¡ãœãããfilterã¡ãœãããªã©äŸ¿å©ãããªã®ã§äœ¿ãããªããã - for...inã¯ããŸã䜿ããªãæ¹ãããïŒã§ãèªãããã«ã¯èŠããªããšãããªãã®ãâŠïŒ - `ããããã£åãšå€ã«æå®ãã倿°åãåãå Žåã¯{ name }ã®ããã«çç¥ããŠæžãã`æ··ä¹±ãããããã - 仿¥ã¯ïŒä»æ¥ãïŒç ãã£ã - åãçžè·³ã³å§ããŸããã50åÃ3ããããããã2ã»ããã§ã¯ã¿ã¯ã¿ - haruguchi - JSã®é åã®äŸ¿å©ã¡ãœããã¯æ¥ã å¢ããŠãã£ãŠãããç°¡åã«ç®ãéããŠãããšããã(æã®JSããç¥ããªã人ã¯é©ã) - JSãªããã«ã¯é¢æ°ã第äžçŽåžæ°ãšããã®ã«ãªããå¿ èŠãããããã(é«é颿°ãã³ãŒã«ããã¯é¢æ°ããããŠãªããžã§ã¯ãã®ã¡ãœããããã) - 2æããçžè·³ã³é£ãã§ãŠãã£ãš3åè·³ã³ç¶ããããããã«ãªã£ã -ã4æãªã®ã§ãè±èŠã«è¡ããã - @kalley - é«é颿°: 颿°ãåŒæ°ãšããŠåãåããor 颿°ãå€ãšããŠè¿ã颿° - `continue` ã¯Rubyã®`next` ãšåãæå³ - jsã®åŒæ°ã¯ãããããå¿ èŠãªãã®ã ãæž¡ãã°ãã(ç¡èŠããã) - é åã¯ãªããžã§ã¯ãã®äžçš® - iterableãªããžã§ã¯ã: Symbol.iteratorãšããç¹å¥ãªååã®ã¡ãœãããå®è£ ãããªããžã§ã¯ã - for~ãå€ããã - ãªããã¬ã€ã¶ãŒã©ã¢ã³HGãæµ®ãã³ãŸãã - wakaranai www - ã¡ãã£ãšé£ããã£ããã©ãã«ã°ãããã®è§£èª¬ã§ä¹ãè¶ãããïŒ ããããšãããããŸãã - ããããã°éŒ»æ°Žæ¢ãŸã£ã...å é±ã®ããã¯ãªãã ã£ããã ãã - æ¢ãŸããªãããã - @yumiya - 1é±é空ããŠããŸã£ãã®ã§ã颿°ã®å®çŸ©ãªã©ã€ããŠãããŠããªãéšåãå€ãã£ããã - [é åã®filterã¡ãœãã ](https://jsprimer.net/basic/loop/#array-filter) - åŒæ°ã¯3ã€ïŒcurrentValue, index, arrayïŒãããããµã³ãã«ã³ãŒãã§ã¯æåŸã®`array`ãã䜿ãããŠããªã - JavaScriptã§ã¯åŒæ°ã¯å¿ èŠãªãã®ã ãã䜿çšããããã - [Array.prototype.filter()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) - [for...inæ](https://jsprimer.net/basic/loop/#for-in-statement) - é åã®äžèº«ãå埩åŠçããå Žåã¯`for..of`ã䜿ãã»ãããã - [for..of](https://jsprimer.net/basic/loop/#for-of-statement)ã¯ãé åã®âå€âãåæããŠããã - [ãªããžã§ã¯ããäœæãã ](https://jsprimer.net/basic/object/#create-object) - objectã®ããŒåãšããããã£åãåããªãã³ãã³ãªãã§çç¥ã§ãã - `{name: name}` -> `{name}`ã§OK - @genny - ãç¡æ²æ±°ããŠãããŸãããåäŸã®ååã§èµ·ããããŸããã - çããŠãŠããã£ã - `for...in` ã¯æ±ãæ¹ãé£ãã&代æ¿ãããã®ã§ã§ããã ã䜿ããªã - ããããã£ã¡ã€ãå€ã«æå®ãã倿°åãåãå Žåã¯çç¥ã§ãã - ã³ãŒã«ããã¯é¢æ°ã¯ããŸã ã«åãã£ãããã§åãã£ãŠããåãããªããã®ã©ã³ãã³ã°TOPïŒ - Rubyã®ãããã¯ãšäžç· - åãåã... <hr/> ## ð 2024-4-7(æ¥) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @yumiya - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - from - https://jsprimer.net/basic/object/#property-access - to - - https://jsprimer.net/basic/object/#object-property-is-to-string ### 次å - https://jsprimer.net/basic/object/#static-method ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - ããããã£ãžã®ã¢ã¯ã»ã¹ã¯ãåºæ¬çã«ã¯ãããèšæ³ã䜿ãã€ã€ããããèšæ³ã§ãããªãå Žåã«ãã©ã±ããèšæ³ã䜿ãããã«ãã - constã§å®çŸ©ãããªããžã§ã¯ãã¯ã倿Žã§ãã - constã¯ãå€ãå®çŸ©ãããã®ã§ã¯ãªãã倿°ãžã®åä»£å ¥ãé²ããã®ã - JS ã§ã¯ååšããªãããããã£ã«ã¢ã¯ã»ã¹ãããšäŸå€ãè¿ãã`undefined`ãè¿ã - `!== undefined`ã ãšãããããã£ãååšããŠããªãã®ãã`undefined`ãå ¥ã£ãŠããã®ãã¯åºå¥ãã€ããªãã®ã§ãååšç¢ºèªã«ã¯inæŒç®åãObject.hasOwnéçã¡ãœããã䜿ããšè¯ãã - ãã ããå®çšçã«ã¯`!== undefined`ã§ãè¯ãã£ãããããšããã®ãé¢çœãã£ã - `!== undefined`ã`&&`ã§ããããç¹ããã®ãåé·ãªã®ã§ãããã§Optional chainingæŒç®å`?.`ã䜿ãããããã¯ãããèšæ³`.`ã®ä»£ããã«`?.`ã§ããããã£ã¢ã¯ã»ã¹ããããã® - `undefined.name`ã ãšãšã©ãŒã«ãªããã©ã`undefined?.name`ã®ããã«ã巊蟺ã®ãªãã©ã³ããnullishã®å Žåã§ããšã©ãŒã«ãªããundefinedãè¿ãã®ã§ãšã©ãŒã«ãªãã䟿å©ã - @yumiya - ããããã£ã®æç¡ã確èªããéã«ã¯ã`in`æŒç®åãŸãã¯`Object.hasOwn`éçã¡ãœããã䜿ã - `Object.hasOwn`éçã¡ãœããã¯ES2022察å¿ãã©ãŠã¶ã§äœ¿çšã§ãã - ChromeãSafariãªã©ã®ã¢ãã³ãã©ãŠã¶ã¯ES2022察å¿ãå®äºããŠãããã - [æ£åŒä»æ§ãªãªãŒã¹ïŒ JavaScriptã®ææ°ä»æ§ES2022ã§è¿œå ããããå šãæ°æ©èœ](https://zenn.dev/tonkotsuboy_com/articles/es2022-whats-new) - ããå³å¯ã«ããããã£ã®æç¡ã確èªããå Žåã¯ã[Optional chainingæŒç®åïŒ?.ïŒ](https://jsprimer.net/basic/object/#optional-chaining-operator)ãåãããŠå©çšãã - [ãªããžã§ã¯ãã®åå²ä»£å ¥](https://jsprimer.net/basic/object/#object-destructuring)ã埩ç¿ãã - [ãJavaScriptããåå²ä»£å ¥ãã«ã€ããŠ](https://qiita.com/kamijodev/items/ca007a264a3a0f1d1c8b) - [åå²ä»£å ¥ïŒDestructuring AssignmentïŒ](https://zenn.dev/goldsaya/articles/f5135a4eae09fe) <hr/> ## ð 2024-4-13(å) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @genny - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - from - https://jsprimer.net/basic/object/#static-method - to - https://jsprimer.net/basic/prototype-object/#diff-in-operator-and-object-hasown ### 次å - https://jsprimer.net/basic/prototype-object/#create-method ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - ãªããžã§ã¯ãã®ããŒãžã¯`Object.assign`ãšãspreadæ§æãäœ¿ãæ¹æ³ãããã - `Object.assign`ã¯shallowã³ããŒãªã®ã§ãã¹ãããå ã®ãªããžã§ã¯ãã¯è€è£œããªãããªã®ã§è€è£œããŠå€ãããããã¿ãããªãšãã«æ³šæ - deep copyãšããã®ããã - ãããã¿ã€ããªããžã§ã¯ãã®ç« ã«å ¥ã£ãŠãšã¯ã¯ã«ã©ã³ãšãªã£ã - ãããã¿ã€ãã¡ãœãããšååã®ã€ã³ã¹ã¿ã³ã¹ã¡ãœãããããã°ãããåªå ããã - `Object.hasOwn`ããã®ãªããžã§ã¯ãèªäœã«å®çŸ©ãããŠããã¡ãœãããæ¢ããšããã®ã¯ã`hasOwn`ãšããååã§ãªãã»ã©ãšæã£ã - haruguchi - æ°ã¥ããã4æã®äžæ¬ã§ã·ã§ãã¯ãåãã - ãããã¿ã€ããšããèãæ¹ããªããªãé£ããã®ã§æåã¯ãµãŒãã§ãããšæããç¹ã«æ°ã«ããªããŠãããçšåºŠã¯æžããããã«ãªã£ãŠããã - spredæ§æã¯è³ãæã§åºãŠããã®ã§æ £ããæ¹ãããRubyã ãšhashã«ã¯`**`ã§å±éãããé åãrangeã«ã¯`*`ã§å±éããã®ã§èšå·ãéããJSã¯åãã - deep copy 㯠JSON.stringifyããŠparseããæ¹æ³ãšãããã£ãããããã仿¥åºãã¿ããã«ååž°é¢æ°èªåã§æžããããããïŒã©ã€ãã©ãªäœ¿ãããšãããã - äžæšæ¥æ±äº¬è¡ã£ãŠãæšæ¥æã€ãã§åž°ã£ãŠããã®ã§æåã«ãªã£ãã - @yumiya - ãªããžã§ã¯ããšã¯ããããã£ã®éåã§ããïŒã ããKeyãšValueãæ±ãã¡ãœãããçšæãããŠããïŒ - ãªããžã§ã¯ãã®ããŒãžã«ã¯ã`Object.assign`ã¡ãœãããŸãã¯`âŠ`(spreadæ§æ)ã䜿ã - ES2018ããããããã£ã«`âŠ`(spreadæ§æ)ã䜿ããããã«ãªã£ã - ãªããžã§ã¯ãã®ããŒãžãè¡ãéã«ã¯ãããšã«æå®ããããããã£ã§äžæžãããã - ãªããžã§ã¯ããè€è£œãã颿°ã¯çšæãããŠããªãã®ã§ã空ã®ãªããžã§ã¯ããäœã£ãŠããä»£å ¥ãã - `Object.assign`ã¡ãœããã¯ã³ããŒãããªããžã§ã¯ãã®ããããã£ã"æµ ã"ã³ããŒãã - ãã¹ãããŠãããªããžã§ã¯ãã®ããããã£ãŸã§ã¯ã³ããŒããªã - ã»ãšãã©ãã¹ãŠã®ãªããžã§ã¯ãã¯`Object.prototype`ããããã£ã«å®çŸ©ããã`prototype`ãªããžã§ã¯ããç¶æ¿ããŠãã - `Object.prototype.toString`ã`Object#toString`ã®ããã«ã"#"ã§çç¥ã§ãã - ãã ãâ#âã¯ãã©ã€ããŒãã¡ãœããã衚ãã®ã§æ³šæãã - "ååž°é¢æ°"ãããããããªãã£ãã®ã§åŸ©ç¿ãã([ãªããžã§ã¯ãã®è€è£œ](https://jsprimer.net/basic/object/#copy)ã®3ã€ç®ã®ãµã³ãã«ã³ãŒã) - åãåãã§ãïŒïŒïŒ - åkey颿° - www - åèµ·ããŠé 匵ããïŒ - @karlley - ååã®ããŒãæã€ãªããžã§ã¯ããããŒãžãããšåŸãã«ãããªããžã§ã¯ãã®å€ãåªå ããã - `...`ã`Object.assign`ã©ã¡ããå ±é - ãã¹ããæ·±ããªããžã§ã¯ãã¯è€è£œãããŠãªã(shallow copy) - æ·±ãã³ããŒã¯ã©ã€ãã©ãªã䜿ã£ãŠå®è£ ãããããšãå€ãã£ãœã - ãããã¿ã€ããã§ãŒã³: ã€ã³ã¹ã¿ã³ã¹ããprototypeãªããžã§ã¯ãã®ã¡ãœãããåç §ã§ããä»çµã¿ - èªåèªèº«ãã芪(ç¶æ¿å )ãŸã§ã¡ãœãããæ¢ããŠããã€ã¡ãŒãž - ã ãã ãé£ãããªã£ãŠããð äœåãèªãã§çè§£ããŠãããããªããã - @genny - Objectã®è€è£œã¯ã¹ãã¬ããæ§æäœ¿ã£ãŠãã£ãŠããã°è¯ããã - shallow copyãšdeep copyã®éã - ãªãããäžåç®èªåã§èªãã æã«å®å šã«é°å²æ°ã§èªã¿æµããŠãã `Object.prototype` ãå®å šã«çè§£ãã <hr/> ## ð 2024-4-14(æ¥) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @genny - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - from - https://jsprimer.net/basic/prototype-object/#create-method - to - https://jsprimer.net/basic/array/#detect-array ### 次å - https://jsprimer.net/basic/array/#typed-array ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - Objectãæã€ã¡ãœãããšã€ã³ã¹ã¿ã³ã¹ãæã€ã¡ãœããããŠã®ããããäŸãã°ã`toString`ã¡ãœããã¯ãObjectã®ã¡ãœãããããªããŠ`Array.prototype`ã®ã¡ãœãããåªå ããŠåŒã³åºããã - `hasOwnProperty`ãã`Object.hasOwn`éçã¡ãœããã䜿ã£ãŠãããšè¯ããã - é åå ã®äœããåŒã³åºãã«ããã£ãŠã`array[-1]`ã¯`undefined`ã«ãªãã`array.at(-1)`ãšãããšãRubyãšåãæãã§æåŸã®èŠçŽ ãåŒã¹ã - çãªé åããšããã®ãJSã«ã¯ãããã©ããããšãã«äœ¿ããã ããïŒ - `array.length`ã¯çŽæçã«ããããã©`Array.isArray(obj)`ã¿ãããªæžãæ¹ãããåããããªããšãã話ãããéçã¡ãœãããšã€ã³ã¹ã¿ã³ã¹ã¡ãœããã®è©±ãè²ã ãšã§ããŠããªãåŠã³ã«ãªã£ã - @genny - è²ã ãšæ¶åäžè¯ã ãã©ãããæãã§åãããªããªãã«è°è«ããŠããããªãã®ãšããã§ã¹ãããã§ããŠããæ°ããã - éçã¡ãœãããšã€ã³ã¹ã¿ã³ã¹ã¡ãœããã®éããç¹ã«çµã¿èŸŒã¿ãªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹ã¡ãœãããåŒã³åºãä»çµã¿ãããŸãã¡åãã£ãŠããªãããšã«æ°ã¥ãã - ã€ã³ã¹ã¿ã³ã¹å -> ã€ã³ã¹ã¿ã³ã¹ã¡ãœããåŒã³åºã - undefined ãš null ã®éããããã§èŠããã ã£ã - https://typescriptbook.jp/reference/values-types-variables/undefined-vs-null - @karlley - å®å šã«ç©ºã®ãªããžã§ã¯ããäœãããã·ã¥ãã¥ãšãŒã·ã§ã³ãã€ã¡ãŒãžã§ããªãã£ã - åºç€ã«èªãã å 容ãããå¿ããããŠããŠã·ã§ãã¯ã ã£ãç¬ - æåã«èªãã æã«ãæãããã ãã ãæ¥æ¬èªãåãããªããªã£ãŠãã - 1åã§çè§£ãã«ãããšãããã ãã ãå¢ããŠãã... - æ©ããã€ã³ããåãããªããã€ã³ããã ãããã¿ããªåãã£ãœãã®ã§å®å¿ããŸãã <hr/> ## ð 2024-4-20(å) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @sugiwe - ãã©ã€ããŒ: @yumiya ### ð èªãã ãšãã - from - https://jsprimer.net/basic/array/#typed-array - to - https://jsprimer.net/basic/array/#spread ### 次å - https://jsprimer.net/basic/array/#flat ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - é åã¯åå²ä»£å ¥ã§ããã - `undefined`ã£ãŠããååã®èŠçŽ ãå ¥ã£ãŠããå Žåãšãæªå®çŸ©ã«ãã`undefined`ã®éãããçŽãããããªããšæã£ã - éåºé(æ«å°Ÿã¯å«ãŸãªã)ãšéåºé(䞡端å«ã)ãšããèšãæ¹ãç¥ã£ãã - `indexOf`ã¡ãœããã¯ããªããžã§ã¯ãã倿°ã«æ ŒçŽãããšçºèŠã§ããªããªã - Spreadæ§æïŒ`...`ïŒã¯concatã¡ãœãããšã¯ç°ãªããé åãªãã©ã«äžã®ä»»æã®äœçœ®ã«é åãå±éã§ããã䟿å©ããã - ã¡ãœãããæ¬¡ããæ¬¡ãžãšåºãŠããŠé ã«å ¥ã£ãŠãªãããã - @genny - åå²ä»£å ¥ã¯èšèãšã©ããªãã®ãã ããã£ããèŠããŠãããã - é åã®äŸ¿å©ã¡ãœãããè²ã ç¥ãã - Spreadæ§æ(`...`)ã¯èŠããŠãããã - ç Žå£çã¡ãœããã«æ³šæããŠãããã - @haruguchi-yuma - ç ãããŠ3åããã倩ãä»°ãã - 倩ãä»°ãã§å¯ããã¿ãŒã³ãªãã§ãããèªåã¯ãã¹ã¯ã«äžåãã«ãªããŸã - é åã®äŸ¿å©ã¡ãœãããã¡ã¯å€§äœãã€ããã®éœåºŠèª¿ã¹ãŠãã(èŠããããªã) - `{a: 1} === {a: 1} // false` - çµæ§ããããŒã¹ã§é²ãã§ãïŒ - å é±çãç«å°ãè²·ã£ãã®ã§çãç«ããŠããŸãïŒ - ãã£ã³ãè¡ããŸãããïŒ - kyannpushitai!!!!!!!!!! - ç©Žå Žãã£ã³ãå Žãã£ããæããŠãã ãã - çµç¶æ¹ã®åšããªãã©ãã§ã空ããŠãïŒ - @kitarou - ãªããžã§ã¯ãã®æ¢çŽ¢ã¯findã§ã¯æ¢ããªãã®ã§someã䜿ã - Rubyã£ãŠé空éã ã£ããã§ãã - æšæ¥0æããã«å¯ãã®ã«4æå°ã«èµ·ããŠããŸã£ãã®ã§ãã£ã¡ãŸã£ãæã»ã»ã» - 1幎以äžã€ã¥ããååè©ãããããæ²»ã£ãŠããã®ã§ä»æ¥ã¯ã²ããã¶ãã«åã©ããšãã£ããããŒã«ããŠããŸãâŸïž - 黿¿ã®é«ããšããæ¶ããªã - ã¢ã³ããŒã¹ããŒã ã£ãããããã®ã§ã¯âŠïŒïŒ - ãããã³ã°ãã·ãŒã³å°å ¥ããã - å·Šã§æããããããã«ããã - çµè«ïŒã¹ãã¬ãããããïŒ - @yumiya - `TypedArray`ã®äœ¿ãã©ãããããããããªãã£ã - ããªããã£ããªèŠçŽ ãæ¢çŽ¢ããå Žåã¯`indexOf`ãããªããžã§ã¯ãããå€ãæ¢çŽ¢ããå Žåã¯`findIndex`ã䜿ã - èŠçŽ èªäœãã»ããå Žåã¯`find` - é åããæå®ç¯å²ãåãåºããšãã«ã¯`slice`ã䜿ã - çµäºäœçœ®ã瀺ã第2åŒæ°ã¯**çµäºäœçœ®ã®èŠçŽ ãå«ãŸãªã** - é åäžã«ä»»æã®èŠçŽ ãå«ããå€å¥ãããã ããªã`includes`ã䜿çšãã - Rubyã®`include?`åã - `unshift`ãš`shift`ã¯ãã©ã£ã¡ã远å ã§ã©ã£ã¡ãåé€ãæ··ä¹±ããã¡ - 茪èªäŒéå§çŽåã«ç®ãå·ããŠçŠããŸããð - æ¹å®3çãè²·ããæ©ã¿äž(623ããŒãžð³) - [JavaScript解説æžã®æ±ºå®çïŒ ES2022察å¿ãéçºã«å¿ èŠãªç¢ºããªç¥èã身ã«ã€ãè¯æž -æ¹èš3çJavaScriptæ¬æ Œå ¥é | ã³ãªã¹](https://coliss.com/articles/book-review/isbn-9784297132880.html) <hr/> ## ð 2024-4-21(æ¥) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @yumiya - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - from - https://jsprimer.net/basic/array/#flat - to - https://jsprimer.net/basic/array/#array-reduce ### 次å - https://jsprimer.net/basic/array/#array-like ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - `flat`ã¡ãœããã§ãé åãå šãŠãã©ããåããã«ã¯`infinity`ãå€ã§æž¡ã - `splice`ãš`slice`ãååãçŽãããã - é åå šèŠçŽ ãåé€ããããã«`array.length = 0`ã`array = []`ãšããããšã§å®çŸã§ããã£ãŠã®ããåæã ãã©é¢çœããªãšæã£ã - åºæ¥ãã ãéç Žå£çãªã¡ãœããã䜿ããŸãããã£ãŠèšããªããå ã ã¯ç Žå£çã¡ãœãããå€ãã£ãŠã®ãããªãã ããïŒã£ãŠæã£ãã䜿ãåæãæªãããæ¹è¯ããŠãã£ãŠãã£ãŠããšãªã®ããªã - æ°ã«ãªããšãããã¡ããã¡ããã³ãŒããããã£ãŠç¢ºèªããããšãã§ããŠã楜ããã£ããçè§£ãæ·±ãŸã£ãïŒïŒãããªæ°ãããïŒ - @karlley - `[...array]` ã¿ãããªæžãæ¹ã¯ã¹ãã¬ããæ§æ - æ¢åã®é åã«ç©ºã®é åãä»£å ¥ãããšé åã®å€ã空ã«ãªã - ç Žå£çãªã¡ãœããã«ã¯æ³šæãããéç Žå£çãªã¡ãœããã䜿ããå Žåã¯ãã£ã¡ã䜿ã - é åã¯ãšãŠããããŒãªç« ã ãšããããšãåãã£ã - ã¡ãœããåã®èšèã®æå³ãçè§£ããªããèªããšå¿ãã«ããã - @yumiya - `length`ã«ã0ããä»£å ¥ãããšé åã空ã«ã§ãã - é åã®æ°ãã«ãŠã³ãããã ãã§ã¯ãªã - å ã®é åãç Žå£çã«å€æŽããŠããŸããªããããéç Žå£çãªã¡ãœããã䜿çšããããã«ããã - `slice`ã¡ãœãããš`concat`ã¡ãœããã¯åŒæ°ãªãã§åŒã³åºããšããã®é åã®ã³ããŒãè¿ã - JavaScriptã®`concat`ã¯Linuxã®catã³ãã³ããšåãèªæºïŒïŒconcatenateâã€ãªããé£çµããïŒ - **[ãcatã³ãã³ããšã¯ïŒLinuxã³ãã³ãã§ãã¡ã€ã«ã®äžèº«ã確èªããæ¹æ³ãã玹ä»](https://academy.gmocloud.com/wp/lesson/20191111/8091)** - ES2023ããéç Žå£çãªããŒãžã§ã³ã§ãã`toSpliced`ã`toReversed`ã`toSorted`ãªã©ã远å ãããŠãã - Array.prototype.reduceã¡ãœããã¯ã第äºåŒæ°ã«`环ç©å€`ã®åæå€ãšãªãå€ãæž¡ãã - åæå€ãæå®ããªããŠããããã <hr/> ## ð 2024-4-27(å) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @yumiya - ãã©ã€ããŒ: @sugiwe ### ð èªãã ãšãã - from - https://jsprimer.net/basic/array/#array-like - to - https://jsprimer.net/basic/string/#length ### 次å - https://jsprimer.net/basic/string/#compare ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - Array-likeã¡ãœããããªãããã©ãããååã ãªãšæã£ãŠããã`Array.from`ã§Arrayã«å€æã§ãããããã®ã§äŸ¿å©ãããšæã£ã - JSã®æååãªãã©ã«ã¯ES2015ããããã¯ã¯ãªãŒãïŒãã³ãã¬ãŒããªãã©ã«ïŒã䜿ãããæ¹è¡ãå ¥åã§ããããRubyã§ãããšããã®åŒå±éãã§ããããã - åŒå±éãRubyã¯`#{}`ã ãã©JSã¯`${}`ãªã®ã§æ°ãä»ãã - æååãªãã©ã«ãšåãèšå·ãæäžã«äœ¿ãå Žåã¯ããã¯ã¯ãªãŒãã§ãšã¹ã±ãŒãããå¿ èŠããã - äžä»ãã®ãã€ãã³ã¿ãããªã®ã¯ãªãŒããŒã©ã€ã³ - çµµæåã¯çš®é¡ã«ãã£ãŠ`.length`ã®çµæãèŠãç®ãšå€ãã£ãŠåºãŠããã®ã§æ³šæ - @karlley - `console.log(str.at('æåå'));` ã®åŒæ°`æåå` ã¯æé»çã«æ°å€ã«å€æããã - ãã°ããããããæ³šæ - ãŠãŒã¶ãŒã®å ¥åçã該åœãã - JavaScriptãå éšçã«UTF-16ã䜿çšããŠããããšãšã³ãŒãã£ã³ã°æã®ãšã³ã³ãŒãã£ã³ã°ã¯ç¡é¢ä¿ - `æåå.length` ã¯Code Unitã®åæ°ãè¿ããŠãã - æååã¯æ·±ããã - è²ã èŠããŠãªãããšã«ä»æ¥ãæ°ã¥ãã... - @genny - æåã³ãŒãå¥¥ãæ·±ã⊠- æ£èŠè¡šçŸäœãèŠããŠãªã - `\` ã§ãšã¹ã±ãŒãã·ãŒã±ã³ã¹ - ç ããã - haruguchi - Arrayã«å€æããã®ã¯form以å€ã«ãã¹ãã¬ããæ§æã䜿ãã - atã¡ãœããã®è匱ãªéšåãå£éèŠããŠããã£ã - JS ã® stirng interpolationã¯$ - 64bitã ãã2^53-1ãŸã§ã®æ·»åã¢ã¯ã»ã¹ - æååã¯ããã - @yumiya - `arguments`ãªããžã§ã¯ãã¯ã颿°ã®åŒæ°ã«æž¡ãããå€ãé çªã«æ ŒçŽãããŠããã®ã§ã`Array-like`ãªããžã§ã¯ãã«ãªã - myFunc("a", "b", "c")ã®ã"a", "b", "c"ããArray-likeãªããžã§ã¯ã - `Array-like`ãªããžã§ã¯ããé åãªã®ããå€å¥ããéã¯ã`Array.isArray`ã¡ãœãããå©çšãã - `Array.from`ã¡ãœããã䜿ããšã`Array-like`ãªããžã§ã¯ããé åã«å€æããŠæ±ãããšãã§ãã - å®çŸ©ãããŠããªããšã¹ã±ãŒãã·ãŒã±ã³ã¹ã¯ãããã¯ã¹ã©ãã·ã¥ãç¡èŠããŠåŠçããã - ïŒ`\a`ïŒâ ïŒ`a`ïŒ - æååã«å€æ°ãåã蟌ãå Žåã¯ãã³ãã¬ãŒããªãã©ã«(```)ã䜿ã - ãã³ãã¬ãŒããªãã©ã«äžã§`${倿°å}`ãšãããšå±éããŠè¡šç€ºããã - Rubyã®[åŒå±é](https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#exp)ãšåã - æååã®ç¹å®ã®æåã«ãã€ã³ããã¯ã¹ã䜿ã£ãŠã¢ã¯ã»ã¹ããããšãã§ãã - ã¯ãã¯ãªãŒããŒã©ã€ã³ãšèªã - `String.prototype.at`ã¯ãåŒæ°ã«æååãå ¥ããšæ°å€ã«å€æããã - æ°å€0ãšæååâ0âãåããšã¿ãªããã - `str.at(0)`ãš`str.at("0")`ãåãçµæ - ECMAScriptã®å éšè¡šçŸãšããŠUTF-16ãæ¡çšããŠããããJavaScriptãã¡ã€ã«èªäœã®ãšã³ã³ãŒãã£ã³ã°ãšã¯é¢ä¿ããªã - JavaScriptãã¡ã€ã«èªäœã¯ãUTF-16以å€ã®æåã³ãŒãã§ãã£ãŠãåé¡ãªã <hr/> ## ð 2024-4-28(æ¥) ### ð§ð»âð» ãã¡ã·ãª/ãã©ã€ã㌠- ãã¡ã·ãª: @sugiwe - ãã©ã€ããŒ: @yumiya ### ð èªãã ãšãã - from - https://jsprimer.net/basic/string/#compare - to - https://jsprimer.net/basic/string/#match-by-regexp ### 次å - https://jsprimer.net/basic/string/#match-capture-by-regexp ### ð åŠãã ããšã»ææ³ã»éè« - @sugiwe - æååãæ¯èŒæŒç®åãé¢ä¿æŒç®åã§æ¯èŒã§ããã£ãŠã®ãäžæè°ã ãã©é¢çœã - `slice`ã¡ãœãããš`substring`ã¡ãœããã¯åŸ®åŠãªéãããã - `substring`ã¡ãœãã - ãã€ãã¹ã®å€ãæå®ãããš`0`ãšããŠæ±ããã - 第äºåŒæ°ãã第äžåŒæ°ã®ã倧ããå Žåã«å ¥ãæ¿ãã - `indexOf`ã§æååãæ¢ããŠèŠã€ãããªãã£ãå Žåã«`-1`ãè¿ãããšãå©çšããŠ`!==-1`ã§è¡šç€ºãåå²ãããæ¹æ³ããªãã»ã©ãšæã£ã - æ£èŠè¡šçŸã¯ãã€ãŸã§ãæ £ããªããã©ããããŠã¡ããã¡ããç»å Žããã®ã§æ £ããŠãããã - æ£èŠè¡šçŸãªãã©ã«ãš`RegExp`ã³ã³ã¹ãã©ã¯ã¿ã®éã - æ£èŠè¡šçŸãªãã©ã«ã¯ããŒãæã«è©äŸ¡ãããã®ã§ããå®çŸ©ã ãããŠå®è¡ããŠãªã颿°ãã®äžèº«ã§ãããããéšåããããšSyntaxErrorãçºçããïŒå®è¡ããŠãªãã®ã«ãšã©ãŒãåºãã£ãŠã®ã¯çŽæçã§ãªãã®ã§æ°ãã€ããããšæã£ãïŒ - `g`ãã©ã°ãèŠãããšãããã¯ãã ãã©äœãèŠããŠããªãã£ãã®ã§åŸ©ç¿ããã - @yumiya - æååã®æ¯èŒã¯"åé "ããé çªã«æ¯èŒããŠãã - Stringã®`charCodeAt`ã¡ãœããã§Code Unitã®å€ãååŸããŠæ¯èŒãã - æ¥æ¬èªã¯ã²ãããªã»ã«ã¿ã«ãã»æŒ¢åãããã®ã§æ³šæããã - `slice`ã¡ãœãããš`substring`ã¡ãœããã¯äŒŒãåŠçãããã䜿ãåãæ¹ãããããªãã£ã - åŒæ°ãå®ãŸããªããšãïŒå€æ°ã§æ°å€ãåçã«å€ããå Žåãªã©ïŒïŒã«`substring`ã¡ãœããã䜿ãïŒð€ - èªã¿æ¹ - ^ïŒããã£ã¬ããã - *ïŒã¢ã¹ã¿ãªã¹ã¯ - RexExpïŒã¬ã®ã¥ã©ãŒãšã¯ã¹ãã¬ãã·ã§ã³ïŒregular expressionïŒ - æ£èŠè¡šçŸãªãã©ã«ã¯ããœãŒã¹ã³ãŒããèªã¿èŸŒãã æã«æ£èŠè¡šçŸã®ãã¿ãŒã³ãè©äŸ¡ããã - æ£èŠè¡šçŸã®æžãæ¹ã«äžåããããšãæ¥ã«ãšã©ãŒãçºçããŠããŸãã®ã§æ³šæããã - æ£èŠè¡šçŸã®`g`ãã©ã°ã䜿ã£ãç¹°ãè¿ããããã«ã¯`matchAll`ã¡ãœããã䜿ã - `g`ãã©ã°ããªããšãšã©ãŒã«ãªãã®ã§æ³šæ <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