Slide 1

Slide 1 text

+BWB4DSJQUͷਐԽͰมΘΔ ਎ۙͳίʔσΟϯάश׳ 6*5.FFUVQWPMʰ3FMFBSO.PEFSO8FC4UBOEBSEʱ VIZP

Slide 2

Slide 2 text

About Speaker VIZP –-*/&ͷϑϩϯτΤϯυΤϯδχΞ –5ZQF4DSJQUͱ3FBDU͕ઐ໳ –དྷ݄5ZQF4DSJQUͷೖ໳ॻ͕ग़Δ

Slide 3

Slide 3 text

This Talk –+BWB4DSJQUʹ͸৭ʑͳϕετϓϥΫςΟε͕͋Γɺ +BWB4DSJQUΛ࢖͍ͬͯΔͱࣗવͱ਎ʹ͖ͭ·͢ –ҰํͰɺ+BWB4DSJQUͷਐԽ͸Ճ଎͓ͯ͠ΓɺͦΕʹԠͯ͡ ϕετϓϥΫςΟε΋มԽ͠·͢ –ࠓޙಋೖ͞Εͦ͏ͳ&$."4DSJQUͷ৽ػೳΛ௨ͯ͡ ৗࣝΛߋ৽͠Α͏ʂ

Slide 4

Slide 4 text

1. Temporal ݱࡏͷৗࣝ ඪ४ͷ%BUF͸ͱͯ΋ѻ͍ʹ͍͘ NPNFOUKT͸αΠζ͕ ͱͯ΋Ͱ͔͍ EBZKTͳͲܰྔϥΠϒϥϦΛ࢖͏ 5FNQPSBMについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします কདྷͷৗࣝ ඪ४ͷ5FNQPSBMΛ࢖͏

Slide 5

Slide 5 text

Temporalとは –4UBHFϓϩϙʔβϧ – ·ͩॲཧܥʹ͸౥ࡌ͞Ε͍ͯͳ͍ *&5'Ͱͷඪ४Խ࡞ۀ͕ඞཁͷͨΊʣ –೔࣌ॲཧ༻ͷ৽͍͠૊ΈࠐΈΦϒδΣΫτ܈ –ಛ௃ –Πϛϡʔλϒϧ –༻్ผʹ෼͚ΒΕͨΦϒδΣΫτͨͪ 5FNQPSBMについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします

Slide 6

Slide 6 text

Temporalの例 const aprilFool = Temporal.PlainDate.from("2022-04-01") const today = Temporal.Now.plainDateISO() const diff = aprilFool.since(today) diff.toString() // "P7D" diff.toLocaleString() // "7 days" 5FNQPSBMについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします

Slide 7

Slide 7 text

Temporalのオブジェクトたち 5FNQPSBMについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします Temporal documentation (https://tc39.es/proposal-temporal/docs/ ) より引用

Slide 8

Slide 8 text

いま使えるTemporalのPolyfill @js-temporal/polyfill IUUQTHJUIVCDPNKTUFNQPSBMUFNQPSBMQPMZGJMM 5FNQPSBMについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします

Slide 9

Slide 9 text

いま使えるTemporalのPolyfill ͨͩ͠1PMZGJMM͸Ͱ͔͍ @js-temporal/polyfill dayjs 5FNQPSBMについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします

Slide 10

Slide 10 text

いま使えるTemporalのPolyfill ʢ͜Ε͔Β঺հ͢Δଞͷػೳʹ΋ݴ͑Δ͜ͱͰ͕͢ʣ ͍·࢖͏৔߹͸ ϏϧυαΠζ΁ͷෛՙɾະ׬੒ͷػೳΛ࢖͏͜ͱͷϦεΫɾ কདྷ΁ͷ౤ࢿ ͳͲΛצҊͯ͠൑அ͠·͠ΐ͏ 5FNQPSBMについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします

Slide 11

Slide 11 text

2. Iterator Helpers ݱࡏͷৗࣝ &4Ҏ߱ͷ"1*ͷଟ͘͸ ΠςϨʔλΛฦ͢ ʢ.BQFOUSJFTͳͲʣ ΠςϨʔλΛ͞Βʹૢ࡞͢Δ ৔߹͸ͱΓ͋͑ͣ "SSBZGSPN Ͱ഑ྻʹม׵͢Δʢ <BSS>΋Մʣ *UFSBUPS)FMQFSTについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします কདྷͷৗࣝ ΠςϨʔλʹੜ͍͑ͯΔϝιο υʢ*UFSBUPS)FMQFSTʣΛ ࢖ͬͯΠςϨʔλͷ··ૢ࡞͢ Δ

Slide 12

Slide 12 text

Iterator Helpersとは *UFSBUPS)FMQFSTについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします –4UBHFϓϩϙʔβϧ –NBQ΍GJMUFSͳͲͷϝιουΛΠςϨʔλʹੜ΍͢ –தؒ഑ྻΦϒδΣΫτΛ࡞Βͳ͍ͷͰϝϞϦΛઅ໿Ͱ͖Δʁ –"TZOD*UFSBUPSαϙʔτ΋ –஗Ԇॲཧ –ΠςϨʔλʹରͯ͠഑ྻԽ΍OFYU ݺͼग़͕͠ߦΘΕΔ·Ͱ ϝιουͷܭࢉ΍ݩσʔλͷফඅ͕ߦΘΕͳ͍

Slide 13

Slide 13 text

Iterator Helpersの例 // ͜Ε·Ͱ Array.from(map.entries()) .filter(([k, v]) => v === "yes") .map(([k, v]) => k) // Iterator Helpers map.entries() .filter(([k, v]) => v === "yes") .map(([k, v]) => k) .toArray() *UFSBUPS)FMQFSTについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします

Slide 14

Slide 14 text

Iterator Helpersに関していまできること *UFSBUPS)FMQFSTについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします –1PMZGJMM͸ҰԠ͋Δ͕ɺ4UBHFͳͷͰ࢖͏ͷ͸ͪΐͬͱා͍ –ࠓޙΠςϨʔλͷ஍Ґ͕޲্͢ΔͷͰɺࠓͷ͏ͪʹ ΠςϨʔλʹ׳Ε਌͠ΜͰ͓͜͏ ʢfunction* δΣωϨʔλؔ਺Λੵۃతʹ࢖͏ͳͲʣ

Slide 15

Slide 15 text

3. Change Array by copy ݱࡏͷৗࣝ Ұ෦ͷ഑ྻϝιου͸ഁյతͳ ΋ͷ͔͠ଘࡏ͠ͳ͍ͷͰɺ ࢖͏ͱ͖͸ઌʹ഑ྻΛίϐʔ ͢Δ $IBOHF"SSBZCZ$PQZについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょ う! ご協力をお願いします কདྷͷৗࣝ ഑ྻʹඇഁյతϝιου͕Ͱ͖ ΔͷͰͦͪΒΛ࢖͏

Slide 16

Slide 16 text

Change Array by copyとは –4UBHFϓϩϙʔβϧ –഑ྻʹඇഁյతͳϝιουΛ૿΍͢ –UP3FWFSTFE UP4PSUFE UP4QMJDFE XJUI –3FDPSET5VQMFT͔Βٯ༌ೖ͞Εͨ ˞4UBHFͳͷͰϝιου໊͸GJY͍ͯ͠·ͤΜ $IBOHF"SSBZCZ$PQZについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょ う! ご協力をお願いします

Slide 17

Slide 17 text

Change Array by copyの例 // ͜Ε·Ͱ const sorted = [...arr]; sorted.sort(); const fixed = [...arr]; fixed[3] = 3.14; // Change Array by Copy const sorted = arr.toSorted(); const fixed = arr.with(3, 3.14); $IBOHF"SSBZCZ$PQZについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょ う! ご協力をお願いします

Slide 18

Slide 18 text

Change Array by copyに備える –ʮTPSUͰݩͷ഑ྻΛഁյ͠ͳ͍ͨΊʹઌʹίϐʔ͢Δʯ ͷΑ͏ͳৗࣝ͸͍ͭͷؒʹ͔ݹ͘ͳ͍ͬͯΔՄೳੑ͕ߴ͍ ͷͰ࠷৽৘ใΛ΢Υον͠Α͏ $IBOHF"SSBZCZ$PQZについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょ う! ご協力をお願いします

Slide 19

Slide 19 text

4. String.cooked ݱࡏͷৗࣝ ࣗલͷςϯϓϨʔτλάؔ਺Λ ࣮૷͢Δͱ͖͸จࣈྻͷ࿈݁Λ ࣗલͰ࣮૷͢Δඞཁ͕͋Γ໘౗ 4USJOHDPPLFEについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします কདྷͷৗࣝ 4USJOHDPPLFEΛ࢖͏ͱ؆୯ʂ

Slide 20

Slide 20 text

String.cookedとは –4UBHFϓϩϙʔβϧ –lԿ΋͠ͳ͍zλάؔ਺ –ൺֱత৽ͯ͘͠಺༰͕؆୯ͳͷͰૣΊʹਐΈͦ͏ʢ༧૝ʣ ˞4UBHFͳͷͰϝιου໊͸GJY͍ͯ͠·ͤΜ 4USJOHDPPLFEについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします const whose = “My”; `Hello! ${whose} World!!` === String.cooked`Hello! ${whose} World!!`;

Slide 21

Slide 21 text

String.cookedの使い道 // ͜Ε·Ͱ: จࣈྻ࿈݁ΛࣗલͰ࣮૷͢Δඞཁ͕͋Δ function tag(strings, ...values) { let result = ""; for (const [index, value] of values.entries()) { result += strings[index] + (value * 5000) + "ஹ"; } result += strings.at(-1); return result; } console.log(tag`I have ${1}ԁ`) // "I have 5000ஹԁ" 4USJOHDPPLFEについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします

Slide 22

Slide 22 text

String.cookedの使い道 // String.cookedΛ࢖͏ͱจࣈྻ࿈݁Λ೚ͤΒΕΔ function tag(strings, ...values) { return String.cooked(strings, ...values.map(x => x * 5000 + "ஹ")); } console.log(tag`I have ${1}ԁ`) // "I have 5000ஹԁ" 4USJOHDPPLFEについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします

Slide 23

Slide 23 text

String.cookedに備える –λάؔ਺Λ࣮૷͢Δͱ͖͸࿈݁෦෼Λखॻ͖͕͕ͪͩ͠ɺ ͍ͭͷؒʹ͔ෆཁʹͳΔՄೳੑ͕ߴ͍ͷͰ࠷৽৘ใΛ ΢Υον͠Α͏ –λά෇͖ςϯϓϨʔτϦςϥϧ͸ΤσΟλʹΑΔࢧԉͳͲͷ ؍఺Ͱ΋ศརͳͷͰࣗ࡞ͱ͍͏બ୒ࢶΛ਎ʹ͚ͭΑ͏ 4USJOHDPPLFEについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします

Slide 24

Slide 24 text

まとめ –+BWB4DSJQUͷਐԽʹͱ΋ͳͬͯৗࣝ͸มԽ͠·͢ –ࠓͷʮ࢓ํͳ͍ʯ͸ະདྷͷʮݹ͍ʯ –5$΢Υονϯά͸ָ͍ͧ͠ʂ