Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
モダンなJavaScriptを知ろう / modern JavaScript since E...
Search
Yutaro Shimoda
October 22, 2021
Programming
0
1.9k
モダンなJavaScriptを知ろう / modern JavaScript since ES2015
ES2015の登場で大きな技術刷新があったJavaScriptの汎用性の高い機能をまとめました!
React/Next.jsでの開発でお世話になっています。
Yutaro Shimoda
October 22, 2021
Tweet
Share
More Decks by Yutaro Shimoda
See All by Yutaro Shimoda
エンジニアの次のキャリアに プロダクトマネージャーという選択
shimotaroo
2
640
SNSは最強
shimotaroo
3
650
それ、プロダクトに機能追加しなくてもよくないっすか?
shimotaroo
0
360
イシューからはじめよう
shimotaroo
0
490
マーケ・セールス担当者の話を理解したいいいいい!!!
shimotaroo
0
1.3k
自分のペースで頑張ればいんじゃない?というお話
shimotaroo
0
1.8k
つながる勉強会立ち上げからの1年間を振り返る/tsunagaru-kobe-2021
shimotaroo
0
250
【ハンズオン】PHPUnitでのテストコード実装超入門/PHP-Hands-On
shimotaroo
0
6.1k
SPA/CSR/SSR/SSGまとめ/SPA-SSR-SSG
shimotaroo
0
7.2k
Other Decks in Programming
See All in Programming
Bytecode Manipulation 으로 생산성 높이기
bigstark
1
330
プロダクト開発でも使おう 関数のオーバーロード
yoiwamoto
0
150
TypeScript LSP の今までとこれから
quramy
1
500
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
130
Perplexity Slack Botを作ってAI活用を進めた話 / AI Engineering Summit プレイベント
n3xem
0
660
Practical Tips and Tricks for Working with Compose Multiplatform Previews (mDevCamp 2025)
stewemetal
0
120
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
1
700
try-catchを使わないエラーハンドリング!? PHPでResult型の考え方を取り入れてみよう
kajitack
3
510
関数型まつりレポート for JuliaTokai #22
antimon2
0
100
社内での開発コミュニティ活動とモジュラーモノリス標準化事例のご紹介/xPalette and Introduction of Modular monolith standardization
m4maruyama
1
120
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
300
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
1
250
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Docker and Python
trallard
44
3.4k
Bash Introduction
62gerente
614
210k
Adopting Sorbet at Scale
ufuk
77
9.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
Why Our Code Smells
bkeepers
PRO
337
57k
Thoughts on Productivity
jonyablonski
69
4.7k
Being A Developer After 40
akosma
90
590k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Transcript
モダンなJavaScriptを知ろう 2021年10月22日
”モダン”なJavaScriptとは? この場では、 ES2015以降のJavaScript として扱います。
ES2015とは? • ECMA Internationalのもとで標準化されているJavaScriptの仕様 • ES2015 = ECMAScript2015 • ES2009→ES2015で大きな技術改訂があった
• 最新はES2020(最近は年1回のペースでリリース)
なぜこのテーマなの? React/Next.js開発でES2015以降の仕様のJSをゴリゴリ使っているから! (厳密にはTypeScriptですが...) • 既存のJavaScriptコードのリファクタリング • 知識のアップデート こんなことに活用してください
モダンなJavaScriptの機能 • Let、constによる変数宣言 • テンプレート文字列 • アロー関数 • 分割代入 •
スプレッド構文 • デフォルト引数 • map ※実際にはまだまだあります ... 例) Promise、async/await、filter、 オプショナルチェイニング、 null合体演算子などなど
let、constによる変数宣言(1) ✔ let、const、varの違い
let、constによる変数宣言(2) オブジェクト、配列はconstでも中身を変えることができる💡 ✔オブジェクト、配列は必ずconstで定義する
let、constによる変数宣言(3) varはwindowオブジェクトのプロパティを上書きしてしまう危険性がある😨 ✔ varは(絶対)使わない ✔ 基本はconst、どうしても必要な時だけletを使う
テンプレート文字列 ✔ ES2009以前 ✔ ES2015以降 バッククオートで囲む 変数は${ }で囲む
アロー関数(1) ✔ 通常の関数定義 functionでの宣言→ 無名関数を変数に格納→
アロー関数(2) ✔ アロー関数での関数定義 無名関数の省略記法 TypeScriptで型定義する場合は()は省略できない
アロー関数(3) 補足:返り値が1文の場合は{}だけでなくreturnも省略可能💡 ✔ React、Vue.jsではアロー関数がよく使われます。
分割代入(1) ✔ 通常のオブジェクトの展開 オブジェクト名.キー名 でプロパティの値を取得する
分割代入(2) ✔ 分割代入を使用 それぞれのプロパティの値が 格納される
スプレッド構文(1) ✏ オブジェクト、配列を扱うときに役立つ機能 ✔ 配列 ✔ 配列の展開、合体ができる
スプレッド構文(2) 関数の引数に配列を展開して設定できる💡
スプレッド構文(3) ✔ オブジェクト ✔ プロパティの上書きができる ✔ プロパティの追加もできる
デフォルト引数 通常の関数→ デフォルト引数使用→ 第2引数が必須ではなくなる
map(1) ✏ ES2015以降で一般的に使われる配列の繰り返し処理 ✔ JavaScriptで使用できる配列の繰り返し処理 • for • forEach •
for ~ of • map ← • filter for ~ of、forEachもmapと書き方が大きく変わらないけどそれぞれ違いがあります。 (今回は割愛)
map(2) 配列の要素を順番に処理して新たな配列を作成できる💡 numにarrの要素が順番に入る
map(2) 配列の要素を順番に処理して新たな配列を作成できる💡 第2引数にはインデックスが入る ✔ 引数の名前は任意 ✔ (もちろん)アロー関数が使える
ご清聴ありがとうございました 快適なフロントエンド開発を!