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
Scaffold for Read and Debug JavaScript
Search
Koji Saiki
September 24, 2019
Programming
0
75
Scaffold for Read and Debug JavaScript
Introduction information for javascript rookie, reader, debugger, javascript product supporter
Koji Saiki
September 24, 2019
Tweet
Share
More Decks by Koji Saiki
See All by Koji Saiki
Angular で PCF した話
kojisaiki
0
530
Why is the subject of the story about Java support JDK?
kojisaiki
0
120
いまどきのSIer的品質向上
kojisaiki
0
140
誰も教えてくれなかったSEとしてただ一つ必要なこと
kojisaiki
0
430
真・なぜ誰もこう書いてくれないDependency Injection入門
kojisaiki
0
740
なぜ誰もこう書いてくれない Dependency Injection
kojisaiki
5
1.8k
Other Decks in Programming
See All in Programming
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
680
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
180
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
130
Java on Azure で LangGraph!
kohei3110
0
170
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
530
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
0
250
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
270
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
20
3.8k
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
240
すべてのコンテキストを、 ユーザー価値に変える
applism118
2
980
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
330
関数型まつりレポート for JuliaTokai #22
antimon2
0
160
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
230
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The World Runs on Bad Software
bkeepers
PRO
69
11k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Documentation Writing (for coders)
carmenintech
72
4.9k
The Language of Interfaces
destraynor
158
25k
A better future with KSS
kneath
239
17k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Making Projects Easy
brettharned
116
6.3k
Transcript
Scaffold for Read and Debug JavaScript KOJI SAIKI@SAIKOU9901 2019/09/24
Who am I ? 佐伯紘二(サイキ コウジ) Now: Support Engineer@Microsoft for
Dynamics C&E / PowerApps / Flow Old: Application Engineer with Typescript / Java etc. Twitter: @saikou9901 Github: @kojisaiki
Preface 社内のサポートエンジニア仲間向けの勉強会資料を公開用に調整したものです。 JavaScript を読んだりデバッグしたりする際に参考になれば。 特に大切な内容は↓マーク。
Line-up Background Use Case How JS Works Tips
Background 技術背景
Netscape で誕生 1995 年に Netscape Communications の Brendan Eich が開発した。
1996 年に Internet Explorer 3.0 に搭載された後、普及率アップ。
Java とは技術的な関係なし Java が当時流行っていた。 Sun Microsystems と Netscape Communications が業務提携していた。
JSは「実装」。「仕様」は “ECMAScript” 標準仕様は “ECMAScript” (エクマスクリプト)。実装ごとに独自拡張がある。 開発者 Brendan Eich を中心とした標準化団体 Ecma
International がメンテナンスしている。 http://ecma-international.org/
Use Case どのように 使用されているか
WEBページにアクションをつける HTML は文書構造、 CSS は Look and Feel 、 JavaScript
は Action (Behavior) を定義する。
Node.js によるサーバサイド開発 2009 年に Ryan Dahl により開発された。
普及により汎用スクリプト言語化 モバイルネイティブアプリや、Unityによるゲーム開発も行われる。
TypeScriptによりさらに使いやすく Microsoft が 2012 年に公開した TypeScript は JavaScript へのトランスパイル言語。 型推論などにより開発が超便利に。
How JS Works どうやって 動いてるのか
JavaScriptのエンジン ブラウザごとに JavaScript エンジンが搭載されている。
エンジンがスクリプトを順番に実行 スクリプトの上から順番に実行される。 「巻上げ」という特殊な仕様があり、 関数宣言は後ろに書いてもOK。 https://developer.mozilla.org/ja/docs/Web /JavaScript/Reference/Statements/functio n#Function_declaration_hoisting
イベントによる処理実行 よくある OnClick や OnSubmit はこれ。 Event は ECMAScript ではなく、W3C
の DOM Standardでインタフェースだ け決まっている。 https://www.w3.org/TR/domcore/ ブラウザ間の互換性問題はこの辺で よく起きる。
Tips JSを捌くための
リファレンスは Mozilla でおk 仕様はとにかくこのサイト。ブラウザごとの取り扱いや ECMAScript 対応表もある。 https://developer.mozilla.org/ja/docs/Web/JavaScript
動作見るなら F12 のコンソール コンソールでスクリプトを試せる。 ウィンドウごとにエンジンが動いているので、変数宣言範囲はウィンドウごと。
特殊な値 null, undefined, NaN null: プロパティが宣言されているが、値なし。 undefined: プロパティの宣言なし。 NaN: 数値に変換できなかった結果。この値は
Number 型にしか出現しない。
HTMLで宣言=実行開始 HTMLで読み込み宣言される箇所でスクリプ トが実行される。 HTMLのロードが途中で止まっている場合は、 その直前のスクリプトを疑う。 JS ファイルのロードを body 末尾にするという プラクティスがある。
https://allabout.co.jp/gm/gc/380498/2/
とにかくシングルスレッド setTimeout 等はタスクキューに詰める。処理が終わらないと次のタスクは処理されない。 https://qiita.com/Kikulin/items/3e980d00102c5c7cf600
Line-up Background Use Case How JS Works Tips
Thank you! References: https://ja.wikipedia.org/wiki/JavaScript https://github.com/tc39/ecma262 https://dom.spec.whatwg.org/ https://developer.mozilla.org/ja/docs/Web https://allabout.co.jp/gm/gc/380498/2/ https://christina04.hatenablog.com/entry/2017/03/13/190000 https://qiita.com/Kikulin/items/3e980d00102c5c7cf600