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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ufoo68
January 21, 2026
Programming
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
文法で学ばないJavaScript
ufoo68
January 21, 2026
More Decks by ufoo68
See All by ufoo68
BlenderをCodexで動かす
ufoo68
0
260
改めて考えるOSSのあり方について
ufoo68
0
55
Cookieとは?
ufoo68
1
81
今更ながら、開発現場での生成AI活用について
ufoo68
0
82
28歳独身エンジニア 婚活してみた
ufoo68
0
34
OpenAIでクッキー型を作る
ufoo68
1
67
初めて開発リーダーをやってみた話
ufoo68
0
140
M5Stack用の指紋認証デバイスを試す
ufoo68
0
900
結婚式のクイズアプリを自作した話
ufoo68
0
700
Other Decks in Programming
See All in Programming
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
17
5.9k
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
110
Oxcを導入して開発体験が向上した話
yug1224
4
290
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
140
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
550
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
930
エージェンティックRAGにAWSで入門しよう!
har1101
7
1.1k
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
5.2k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The SEO identity crisis: Don't let AI make you average
varn
0
480
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
360
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
160
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
How to Talk to Developers About Accessibility
jct
2
220
The untapped power of vector embeddings
frankvandijk
2
1.7k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Statistics for Hackers
jakevdp
799
230k
Transcript
文法で学ばない JavaScript ざっくりと学ぶWebの基礎
自己紹介 • 名前 ◦ 松永勇太(@ufoo_yuta) • 出身学科 ◦ 大阪工業大学ロボット工学科 •
職業 ◦ Webエンジニア • すきなこと ◦ シンプルなものづくり
今日のテーマ: JavaScriptについて
このLTが目指すところ JavaScriptを書いた事ない 人が、 結局JavaScriptは書けない けど、 なんとなくJavaScriptが理解できる こと。
ざっくり基礎
覚えて帰ってほしいトピック • スクリプト言語 • サンドボックス • Web API • イベントループ
スクリプト言語 JavaScriptは、スクリプト言語 →コンパイラ(機械語への変換)を介さずに実行するプログラム言語 各ブラウザとそれの実行エンジン↓ Chrome V8 Firefox SpiderMonkey Safari JavaScriptCore
サンドボックス JavaScriptは、サンドボックス内で動く →サンドボックスとは、プログラムの危険な動作を防ぐ安全柵 以下の操作はJavaScriptではできない • 選択していないファイルを勝手に読む • 他のアプリを勝手にインストールして起動する • 他のタブで開いたページの内容を知る
• カメラやマイクを勝手に起動する
Web API Web APIは、JavaScriptがブラウザの機能を呼び出す仕組み • インターネット通信(fetch) • タイマー実行(setTimeout) • 画面操作(document)
• ストレージへのアクセス(localStorage) • デバイスからの入力(MediaDevices) JavaScriptはOSへの干渉ができないので、Web APIを介する
イベントループ イベントループとは、「JavaScriptをいつ実行していいか」を決める仕組み fetch(https://xxx) .then(hoge) Web API イベントループ https://xxxとの通信 通信完了 hogeの実行を許可
Web API(fetch)でhttps://xxxへの通信後に、hogeという処理を実行させる例↑ イベントループの采配で、 hogeの実行タイミングが決まる
一言でまとめると JavaScriptは、 誰でも使えるように設計された言語 そのため、 危険なことを極力させない工夫が施されている
少し踏み込んだ話
JavaScriptの実行速度は遅い? 現代のJavaScriptは十分な性能 • JIT(Just In Time)コンパイラを持っている ◦ スクリプト言語の処理速度を最適化する仕組み ◦ 実行しながら処理の最適化がされる
• 内部処理はネイティブが動いている ◦ C/C++が実行しているので早い • 文字列処理はかなり早い ◦ 正規表現は高度に最適化されている
JavaScriptをブラウザ以外で動かす方法 3つの環境(ランタイム)がある • Node.js ◦ 一番歴史があるので、情報も多い ◦ その分負の遺産多め • Deno
◦ Node.jsの反省を活かして設計された ◦ Node.jsとの互換性が弱いので、現場で使いにくい • Bun ◦ Denoよりは互換性が強い ◦ 開発体験も良くて、実行速度も一番早い
JavaScriptで静的型付けをする方法 TypeScriptがある • MicroSoftが開発した言語 • JavaScriptにトランスパイルすることで実行できる →トランスパイルとは、ある言語のプログラムを別の言語に変換すること トランスパイル
JavaScriptの仕様はどこが決めている? • JavaScript ◦ ECMA-262 ▪ JavaScriptの仕様そのもの ▪ ECMA Scriptとも呼ばれる
◦ TC39 ▪ ECMAScriptを策定する専門委員会 • Web API ◦ 2つの団体が決めている ▪ W3C ▪ WATWG
さいごに なんでJavaScriptという名前なの? 当時Javaが流行っていたからそれに便乗したらしい