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
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Recruit
PRO
August 10, 2023
Technology
10k
6
Share
JavaScript
2023年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
August 10, 2023
More Decks by Recruit
See All by Recruit
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
1.8k
データ戦略を加速させる プラットフォーム エンジニアリングと進化的アーキテクチャ
recruitengineers
PRO
2
46
まなび領域における生成AI活用事例
recruitengineers
PRO
2
240
AI時代にエンジニアはどう成長すれば良いのか?
recruitengineers
PRO
1
400
AIを用いたカスタマーサポートの業務プロセス・組織変革の実現
recruitengineers
PRO
1
200
問い合わせ自動化の技術的挑戦
recruitengineers
PRO
2
300
「Air ビジネスツールズ」のクライアントサポートにおける生成 AI 活用
recruitengineers
PRO
0
140
AI活用のためのアナリティクスエンジニアリング
recruitengineers
PRO
2
220
SaaS事業のデータマネジメント事例
recruitengineers
PRO
0
180
Other Decks in Technology
See All in Technology
データ定義の混乱と戦う 〜 管理会計と財務会計 〜
wonohe
0
160
Practical TypeProf: Lessons from Analyzing Optcarrot
mame
1
1.4k
Percolatorを廃止し、マルチ検索サービスへ刷新した話 / Search Engineering Tech Talk 2026 Spring
visional_engineering_and_design
0
200
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
660
The 7 pitfalls of AI
ufried
0
110
Google Cloud Next '26 の裏でこっそりリリースされたCloud Number Registry & Cloud Hub コスト分析 を試してみた
hikaru1001
0
120
AI時代における技術的負債への取り組み
codenote
1
1.9k
要件定義の精度を高めるための型と生成AIの活用 / Using Types and Generative AI to Improve the Accuracy of Requirements Definition
haru860
0
110
国内外の生成AIセキュリティの最新動向 & AIガードレール製品「chakoshi」のご紹介 / Latest Trends in Generative AI Security (Domestic & International) & Introduction to AI Guardrail Product "chakoshi"
nttcom
4
1.6k
生成AIが変える SaaS の競争原理と弁護士ドットコムのプロダクト戦略
bengo4com
1
2.9k
Oracle Cloud Infrastructure:2026年4月度サービス・アップデート
oracle4engineer
PRO
0
200
AIが盛んな時代に 技術記事を書き始めて起きた私の中での小さな変化
peintangos
0
320
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
280
The Curious Case for Waylosing
cassininazir
0
320
Making Projects Easy
brettharned
120
6.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Color Theory Basics | Prateek | Gurzu
gurzu
0
300
First, design no harm
axbom
PRO
2
1.2k
What's in a price? How to price your products and services
michaelherold
247
13k
Automating Front-end Workflow
addyosmani
1370
200k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
160
Six Lessons from altMBA
skipperchong
29
4.2k
The SEO Collaboration Effect
kristinabergwall1
1
430
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
500
Transcript
JavaScript 研修 (公開版) Author: @progfay
Name: 眞野 隼 輔 ま の しゅんすけ @progfay ‧2020 年度⼊社
(新卒 4 年⽬) ɾWeb Frontend Engineer ‧最近は 料理 にハマっている
想定受講者 ‧何らかのプログラミング⾔語を読み書きできるレベルのエンジニア ‧例: Java, C++, Python, Ruby, Go, etc …
何のための研修? ‧JavaScript で書かれたコードを読めるようになって欲しい ‧業務では、既に実装されている処理を読む機会が多い ‧コードを読むことで「何がしたいか」を学ぶことができる JavaScript の基本的な記法と慣習について共有する
研修の⽬標 ‧まずは not bad なコードが書けるようになる ‧他⼈が書いたコードを読んで雰囲気を掴めるようになる
やらないこと ‧特定のライブラリの使い⽅ ‧React / Next.js の使い⽅は別の講義でやります ‧古い JavaScript の記法や慣習 (ES
6 以前) ‧発展的な JavaScript 記法について (tc 3 9 /proposals など) ‧JavaScript の内部的な機構や詳細な仕様について
わからないことがあったら ‧「わからない」と⾔うのも社会⼈として必要なスキル ‧「認識が合ってるか不安」もどんどん質問しましょう! ‧もしくは信頼できるソースを確認してみよう 👀
信頼できるソース ‧何かあれば、とりあえず MDN で調べてみる ‧JavaScript の⼊⾨資料なら JavaScript Primer がオススメ ‧詳細な仕様は
ECMAScript Language Specification (上級者向け) ‧実際に⾃分で動かしてみて確かめるのも⼤切
‧ブラウザ上で動く (Chrome, Safari, Firefox, etc … ) ‧サーバー上でも動く (Node.js など)
‧最近はほんといろんなところで動いている ‧静的型付けがない What’s JavaScript?
実⾏環境構築 https://nodejs.org/en/download
実⾏環境構築 うまく動かなければ https://stackblitz.com/fork/node を使おう
Hello, world! 値を標準出⼒に表⽰するには console.log を使う
セミコロン セミコロンは付けても付けなくてもよい
・Number ・String ・Boolean ・undefined / null ‧and more … (今は知らなくても⼤丈夫)
Primitive Value
Number Integer 型や Float 型はない
String 3 通りの書き⽅がある
null / undefined ‧undefined: void 型の関数の返り値など ‧null は別⾔語と同様の考え⽅で OK ‧nil,
None などと同等
変数宣⾔ 変数宣⾔には const か let を使う
‧慣習: 基本的には const を使う ‧再代⼊される可能性があるとコードが追いづらくなるため ‧どうしても const ではダメなときのみ let を使う
‧説明変数を使ったり、書き⽅を⼯夫したりする ‧変数宣⾔には var もあるが、これは使わない 変数宣⾔
Array
Object key と value の組み合わせを並べることができる
Object Object 同⼠の展開を⾏うスプレッド構⽂が便利
Object Object の property access には 2 通りある
Object 存在しない property アクセスには undefined が返る
Error null や undefined の property にアクセスすると Error になる
try-catch
⽐較 JavaScript の⽐較には == と === がある
⽐較 == は暗黙の型変換をしてから⽐較する
‧慣習: 基本的に === を使⽤し、 == は使わない ⽐較 undefined と null
の check への == の使⽤は例外とする⼈も
Function
Condition
Loop
Class
‧JavaScript における this は難しい ‧Object, Function, Class などのいろんなところで使える ‧呼び出す場所などによって this
が指す対象が変わってくる ‧挙動を詳しく知りたい⼈は⾃分で調べてみよう ‧関数とthis · JavaScript Primer #jsprimer this
this ‧個⼈的⾒解: 極⼒ this の利⽤は極⼒避けた⽅が良い ‧挙動が分かりづらいため、バグを⽣み出しやすい ‧その結果として Class を使わない実装が多い印象 ‧注:
ライブラリの特性上、 Class を扱うときもある
‧JavaScriptは シングルスレッド で動作する ‧⾮同期処理: タスクの完了を待たずに別タスクを実⾏できる ‧例: データ読み込み中でもボタンクリックに反応できる ⾮同期処理
‧アプリケーションはイベントが発⽣するまで待機し、 イベントが発⽣したときに対応するアクションを実⾏する ‧JavaScript の⾮同期処理の基盤を提供している Event 駆動
Callback
fetchData → filterData → sortData → displayData
fetchData → filterData → sortData → displayData 🤮 Callback 地獄
🤮
Promise ⾮同期処理をより簡潔に表現するためのオブジェクト
Promise
Promise
‧⾮同期処理を同期的な書き⽅で記述するための syntax sugar ‧`async` と `await` の 2 つの keyword
が追加された ‧エラーハンドリングには try-catch を使⽤する async / await
async / await
None
ググりづらい機能集
Workshop or https://stackblitz.com/fork/recruit-tech-javascripting