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
Recruit
PRO
August 10, 2023
Technology
10k
6
Share
JavaScript
2023年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
August 10, 2023
More Decks by Recruit
See All by Recruit
まなび領域における生成AI活用事例
recruitengineers
PRO
2
180
AI時代にエンジニアはどう成長すれば良いのか?
recruitengineers
PRO
1
320
AIを用いたカスタマーサポートの業務プロセス・組織変革の実現
recruitengineers
PRO
1
170
問い合わせ自動化の技術的挑戦
recruitengineers
PRO
2
260
「Air ビジネスツールズ」のクライアントサポートにおける生成 AI 活用
recruitengineers
PRO
0
120
AI活用のためのアナリティクスエンジニアリング
recruitengineers
PRO
2
180
SaaS事業のデータマネジメント事例
recruitengineers
PRO
0
150
Kaggleで鍛えたスキルの実務での活かし方 競技とプロダクト開発のリアル
recruitengineers
PRO
1
510
LLM のプロダクト導入における開発の裏側と技術的挑戦
recruitengineers
PRO
1
220
Other Decks in Technology
See All in Technology
システムは「動く」だけでは 足りない - 非機能要件・分散システム・トレードオフの基礎
nwiizo
5
2.4k
試されDATA SAPPORO [LT]Claude Codeで「ゆっくりデータ分析」
ishikawa_satoru
0
300
Databricksを用いたセキュアなデータ基盤構築とAIプロダクトへの応用.pdf
pkshadeck
PRO
0
200
I ran an automated simulation of fake news spread using OpenClaw.
zzzzico
1
980
サイバーフィジカル社会とは何か / What Is a Cyber-Physical Society?
ks91
PRO
0
150
【関西電力KOI×VOLTMIND 生成AIハッカソン】空間AIブレイン ~⼤阪おばちゃんフィジカルAIに続く道~
tanakaseiya
0
180
AIがコードを書く時代の ジェネレーティブプログラミング
polidog
PRO
3
600
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
17k
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
240
解剖"React Native"
hacusk
0
120
仕様通り動くの先へ。Claude Codeで「使える」を検証する
gotalab555
8
3k
パワポ作るマンをMCP Apps化してみた
iwamot
PRO
0
310
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Building AI with AI
inesmontani
PRO
1
860
Believing is Seeing
oripsolob
1
110
Building an army of robots
kneath
306
46k
SEO for Brand Visibility & Recognition
aleyda
0
4.4k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
170
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
330
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
310
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
340
It's Worth the Effort
3n
188
29k
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