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入門 - ES6/TypeScript/Vue.js
Search
たにぐちまこと(ともすた)
May 06, 2020
Technology
880
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
いまどきの JavaScript入門 - ES6/TypeScript/Vue.js
たにぐちまこと(ともすた)
May 06, 2020
More Decks by たにぐちまこと(ともすた)
See All by たにぐちまこと(ともすた)
Flexboxを学ぼう - HTML/CSS入門
tomostajp
0
280
Other Decks in Technology
See All in Technology
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
270
グローバル基準のSREは、運用現場でどう機能したか:成熟度アセスメントの実践 / SRE NEXT 2026
sorawatanabe
0
240
Genie Codeハンズオン基礎編
taka_aki
1
120
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
220
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
猫付きpingコマンドを自作
uyuki234
0
240
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
750
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
150
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
110
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
Believing is Seeing
oripsolob
1
190
Tell your own story through comics
letsgokoyo
1
1k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
370
Code Reviewing Like a Champion
maltzj
528
40k
Marketing to machines
jonoalderson
1
5.7k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
860
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
760
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Transcript
None
谷口 允 たにぐち まこと @seltzer 01w.me/tomo
None
None
None
None
None
ウェブのしくみ HTML CSS
ウェブのしくみ …
サーバーサイド言語 PHP Ruby
サーバーサイド言語 PHP Ruby いちいち通信が必要
JavaScript JavaScript
JavaScriptの特徴 •通信がなくても動作できるので早い •時間・マウスの動きなど クリック以外の動作に対応できる •データの共有や保存などはできない
Ajax 非同期通信
Ajaxとは Synchronous 同期通信 Asynchronous 非同期通信
None
None
None
None
拡がるJavaScript
拡がるJavaScript
拡がるJavaScript
準備するもの
JavaScriptをはじめよう
キホンのプログラム let day = prompt('何日の秒数を計算しますか?'); document.write(60*60*24*day);
キホンのプログラム let day = prompt('何日の秒数を計算しますか?'); メソッド(Method) どうする? パラメーター(Parameter) なにを? どのように?
キホンのプログラム let day = prompt('何日の秒数を計算しますか?'); 変数 戻り値・返り値
キホンのプログラム document.write(60*60*24*day); オブジェクト ~が メソッド どうする
キホンのプログラム let day = window.prompt('何日の秒数… windowオブジェクト
犬でおぼえる オブジェクト指向
フル版はこちらで
メソッド(Method) 命令・お願い
パラメーター(Parameter) 細かい指定
戻り値 戻ってきたボール
プロパティ(Property) 性質・特性
インスタンス(Instance) 実体
オブジェクト(Object) 物・概念
クラス(Class) 分類
応用JavaScript <button id="buy">決済する</button> <script> const btn = document.getElementById('buy'); btn.addEventListener('click', ()
=> { btn.disabled = true; }); </script>
イベントドリブン ユーザーの操作など(イベント) に応じてプログラムが動作
ECMAScript
ウェブブラウザーの誕生
Internet Explorerの登場
スクリプト技術の競合 JavaScript VBScript
スクリプトの競合 JavaScript VBScript ブラウザーの開発戦争が勃発
国際標準規格の登場 ECMAScript
標準規格って? A4
標準規格って? A4 規格に沿うからメーカー問わず
ECMAScript準拠言語 ECMAScript
None
<div id="timer"></div> <script> function timer() { var now = new
Date(); document.getElementById('timer').innerHTML = now.getSeconds() + '秒'; } var timerID = setInterval(timer, 500); </script> <div id="timer"></div> <script> const timer = () => { let now = new Date(); document.getElementById('timer').innerHTML = `${now.getSeconds()}秒'; } let timerID = setInterval(timer, 500); </script>
古いブラウザーで動作しない… …
トランスパイル
トランスパイルとは <div id="timer"></div> <script> function timer() { var now =
new Date(); document.getElementById('timer').innerHTML = now.getSeconds() + '秒'; } var timerID = setInterval(timer, 500); </script> <div id="timer"></div> <script> const timer = () => { let now = new Date(); document.getElementById('timer').innerHTML
トランスパイルとは <div id="timer"></div> <script> function timer() { var now =
new Date(); document.getElementById('timer').innerHTML = now.getSeconds() + '秒'; } var timerID = setInterval(timer, 500); </script> <div id="timer"></div> <script> const timer = () => { let now = new Date(); document.getElementById('timer').innerHTML
トランスパイルとは <div id="timer"></div> <script> function timer() { var now =
new Date(); document.getElementById('timer').innerHTML = now.getSeconds() + '秒'; } var timerID = setInterval(timer, 500); </script> <div id="timer"></div> <script> const timer = () => { let now = new Date(); document.getElementById('timer').innerHTML 古い書き方に巻き戻す
トランスパイルのメリット •プログラマーは便利な書き方で書ける •利用者は古い環境でも利用できる •環境のことを気にせずに、最新機能を利用できる
トランスパイラー
トランスパイラー
TypeScriptとは •Microsoftが開発したプログラミング言語 •JavaScriptと完全互換性 •TypeScript→JavaScriptへの変換の際に トランスパイルを設定可能
「型」とは let x = 1; let y = 2; x
= '文字列を代入します'; console.log(x * y); // NaN
「型」とは let x = 1; let y = 2; x
= '文字列を代入します'; console.log(x * y); // NaN 数字 文字
「型」とは let x = 1; let y = 2; x
= '文字列を代入します'; console.log(x * y); // NaN let x: number = 1; let y: number = 2; x = '文字列を代入します'; console.log(x * y); // NaN ここでエラー
TypeScriptのメリット •厳密な型チェックで変数の誤用を防ぐ •コンパイルエラーで、実行時のトラブルを防ぐ •チーム開発時の曖昧な仕様によるトラブルを防ぐ
ライブラリー
None
JavaScriptライブラリー
JavaScriptライブラリー
jQueryが得意なこと •画面内のテキストフィールドなどを指定しやすい •柔軟なイベント定義 •作業手順を指定できる(メソッドチェーン) •豊富なプラグイン
jQueryが苦手なこと •ページ内に新しい要素を登場させる •複数の要素を連携させる •非同期通信を利用したデータ操作
新たなJavaScriptプロダクト
新たなJavaScriptプロダクト
Reactの特徴 •大規模サイトでも、しっかりした設計で開発 •アプリ開発などにも活用可能 •習得に時間がかかり、若干難しい
Vue.jsの特徴 •HTMLに簡単に組み込んで利用可能 •コードを極力書かずに開発が可能 •大規模な開発には向かない
None
要素の生成 <div id="app"> {{ message }} </div> <script> let app
= new Vue({ el: "#app", data: { message: "Vue.jsを勉強中です" } }); </script> Vue.jsを勉強中です
イベント制御 <div id="app"> <button @click="checkClick" :disabled="clicked">決済する </button> </div> <script> var
app = new Vue({ el: "#app", data: { clicked: false }, methods: { checkClick: function() { this.clicked = true } } }) </script>
フォームの制御 <div id="app"> <clock></clock> <clock style="color: blue">現在時刻</clock> </div> <script> Vue.component('clock',
{ data: function () { return { time: '' } }, mounted: function () { var timerID = setInterval(this.refresh, 500); }, methods: { refresh: function () { var now = new Date(); this.time = `${now.getHours()}:${now.getMin utes()}:${now.getSeconds()}` } }, ... template: '<div :style=""><h2><slot>時計 </slot></h2>{{ time }}</div>' }) var app = new Vue({ el: "#app" }) </script>
Vue.jsのこれから
Vue 3の特徴 •大規模な開発が可能になるように •Vue 2以前の不満点を解消 •TypeScriptとの相性の向上
JSを学習しよう
JSを学習するために •HTML/CSSはしっかりマスターしよう •良いエディター(Visual Studio Code)を使おう •サーバーサイドも(少し)理解しよう
None
None