Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JavaScriptの進化で変わる身近なコーディング習慣

 JavaScriptの進化で変わる身近なコーディング習慣

JavaScriptの進化で変わる身近なコーディング習慣
uhyo ( https://twitter.com/uhyo_ )

JavaScriptは歴史が結構長い言語であり、さまざまなベストプラクティスがあります。一方で、JavaScriptは進化を続けており、それに伴ってこれまでに蓄積したベストプラクティスも変化します。このトークでは、みなさんの手癖になっていそうなプラクティスのうち今後修正が必要になるところを紹介します。

2022年3月25日開催「UIT Meetup vol.15 『Relearn Modern Web Standard』」
https://uit.connpass.com/event/242359/

LINE Developers

March 25, 2022
Tweet

More Decks by LINE Developers

Other Decks in Technology

Transcript

  1. 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 付きで投稿しましょう! ご協力をお願いします
  2. 2. Iterator Helpers ݱࡏͷৗࣝ &4Ҏ߱ͷ"1*ͷଟ͘͸ ΠςϨʔλΛฦ͢ ʢ.BQFOUSJFTͳͲʣ ΠςϨʔλΛ͞Βʹૢ࡞͢Δ ৔߹͸ͱΓ͋͑ͣ "SSBZGSPN

    Ͱ഑ྻʹม׵͢Δʢ <BSS>΋Մʣ *UFSBUPS)FMQFSTについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょう! ご協力をお願いします কདྷͷৗࣝ ΠςϨʔλʹੜ͍͑ͯΔϝιο υʢ*UFSBUPS)FMQFSTʣΛ ࢖ͬͯΠςϨʔλͷ··ૢ࡞͢ Δ
  3. 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 付きで投稿しましょう! ご協力をお願いします
  4. 3. Change Array by copy ݱࡏͷৗࣝ Ұ෦ͷ഑ྻϝιου͸ഁյతͳ ΋ͷ͔͠ଘࡏ͠ͳ͍ͷͰɺ ࢖͏ͱ͖͸ઌʹ഑ྻΛίϐʔ ͢Δ

    $IBOHF"SSBZCZ$PQZについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょ う! ご協力をお願いします কདྷͷৗࣝ ഑ྻʹඇഁյతϝιου͕Ͱ͖ ΔͷͰͦͪΒΛ࢖͏
  5. Change Array by copyとは –4UBHFϓϩϙʔβϧ –഑ྻʹඇഁյతͳϝιουΛ૿΍͢ –UP3FWFSTFE UP4PSUFE UP4QMJDFE XJUI

    –3FDPSET5VQMFT͔Βٯ༌ೖ͞Εͨ ˞4UBHFͳͷͰϝιου໊͸GJY͍ͯ͠·ͤΜ $IBOHF"SSBZCZ$PQZについてすでにご存知の方は関連リンクを #uit_meetup 付きで投稿しましょ う! ご協力をお願いします
  6. 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 付きで投稿しましょ う! ご協力をお願いします
  7. 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 付きで投稿しましょう! ご協力をお願いします
  8. 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 付きで投稿しましょう! ご協力をお願いします