SlideShare a Scribd company logo
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/
ブラウザ間の互換性問題はこの辺で
よく起きる。
TipsJSを捌くための
リファレンスは 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

More Related Content

What's hot (20)

PDF
Windows serverとインフラ関連アップデート
Tsukasa Kato
 
PPTX
はじめてのASP.NET MVC5
Tomo Mizoe
 
PPTX
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
Kondo Hitoshi
 
PDF
Azure Cloud Shell
ryosuke matsumura
 
PDF
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
 
PPTX
クラウドインフラ「尚可」採用は不幸を招く
Ryoichi Taga
 
PPTX
インフラエンジニアに送るVSCode 入門
Shinsuke Saito
 
PDF
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
de:code 2017
 
PDF
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
de:code 2017
 
PDF
ASP.NET WEB API 開発体験
miso- soup3
 
PDF
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
Akira Inoue
 
PPTX
Aspnet mvc 6の今を紹介
Makoto Nishimura
 
PDF
トラブル発生、その時あなたがすることは?
Kazushi Kamegawa
 
PPTX
進化するEdge+α
Saki Homma
 
PDF
新 Microsoft Edge を Intune で配信・管理する
Shinsuke Saito
 
PDF
Visual Studio 2015 リリース記念 勉強会 universal windows platform app
一希 大田
 
PPTX
新しい Visual Studio & .NET と新時代のアーキテクチャ
慎一 古賀
 
PDF
OWIN - .NETにおけるPSGI -
将 高野
 
PPTX
Hands on PhotoBlog App with WordPress REST API and App Inventor
Hong Chen
 
PDF
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Akira Inoue
 
Windows serverとインフラ関連アップデート
Tsukasa Kato
 
はじめてのASP.NET MVC5
Tomo Mizoe
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
Kondo Hitoshi
 
Azure Cloud Shell
ryosuke matsumura
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
 
クラウドインフラ「尚可」採用は不幸を招く
Ryoichi Taga
 
インフラエンジニアに送るVSCode 入門
Shinsuke Saito
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
de:code 2017
 
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
de:code 2017
 
ASP.NET WEB API 開発体験
miso- soup3
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
Akira Inoue
 
Aspnet mvc 6の今を紹介
Makoto Nishimura
 
トラブル発生、その時あなたがすることは?
Kazushi Kamegawa
 
進化するEdge+α
Saki Homma
 
新 Microsoft Edge を Intune で配信・管理する
Shinsuke Saito
 
Visual Studio 2015 リリース記念 勉強会 universal windows platform app
一希 大田
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
慎一 古賀
 
OWIN - .NETにおけるPSGI -
将 高野
 
Hands on PhotoBlog App with WordPress REST API and App Inventor
Hong Chen
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Akira Inoue
 

Similar to Scaffold for read and debug java script (18)

PDF
Java scriptの進化
maruyama097
 
PDF
JavaScript.Next
dynamis
 
PPTX
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
 
PDF
TypeScriptへの入口
Sunao Tomita
 
PPTX
TypeScriptをオススメする理由
Yusuke Naka
 
PPTX
Electron を知る
Tomoya Shibata
 
PPTX
TypeScriptハンズオン第1回テキスト
mizuky fujitani
 
PDF
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
 
PPTX
Ltctjs
Hisashi Aruji
 
PDF
JavaScript.Next Returns
dynamis
 
PDF
TypeScript 言語処理系ことはじめ
Yu Nobuoka
 
PDF
Cookpad Summer Intern 2015 - Programming Paradigm
Minero Aoki
 
PDF
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
 
PDF
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
 
PPT
20090121 J QueryからはじめるJava Script~初級編~
Hiromu Shioya
 
PDF
TypeScript 勉強会
Masahiro Wakame
 
PDF
Visual Studio Codeで始めるTypeScript
Akira Inoue
 
PDF
TypeScript Hands-on
Masahiro Wakame
 
Java scriptの進化
maruyama097
 
JavaScript.Next
dynamis
 
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
 
TypeScriptへの入口
Sunao Tomita
 
TypeScriptをオススメする理由
Yusuke Naka
 
Electron を知る
Tomoya Shibata
 
TypeScriptハンズオン第1回テキスト
mizuky fujitani
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
 
JavaScript.Next Returns
dynamis
 
TypeScript 言語処理系ことはじめ
Yu Nobuoka
 
Cookpad Summer Intern 2015 - Programming Paradigm
Minero Aoki
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
 
20090121 J QueryからはじめるJava Script~初級編~
Hiromu Shioya
 
TypeScript 勉強会
Masahiro Wakame
 
Visual Studio Codeで始めるTypeScript
Akira Inoue
 
TypeScript Hands-on
Masahiro Wakame
 
Ad

Recently uploaded (9)

PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
PPTX
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
PPTX
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
PPTX
色について.pptx .
iPride Co., Ltd.
 
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
色について.pptx .
iPride Co., Ltd.
 
Ad

Scaffold for read and debug java script