SlideShare a Scribd company logo
JavaScriptの仕組みと
未来のJavaScript
〜ESNextとは〜
JavaScriptは、
最初はただの文字列(テキストファイルなど)です。
JavaScript
hello
この文字列をJavaScriptエンジンに食べさせることで
プログラムとして動きます。
JavaScript
エンジン
JavaScript
Google
Chrome
Safari FireFox Edge/IE
各ブラウザはそれぞれ
JavaScriptエンジンを持っています。
だからブラウザはJavaScriptを動かすことができるのです。
詳しく⤴︎
ただ、JavaScriptエンジンがそれぞれ違うので
ちょっぴり表現の仕方が違ったりすることもあります。
hello hello
JavaScript
せつないね。。
でも各社好き勝手に作ったわけではありません。
JavaScriptはこう動くべきだ!という仕様書があり、
これを元にJavaScriptが動くように作られています。
仕様書
ECMA
Script
(仕様書)
それがECMAScript(えくますくりぷと)、
略してESです。
ECMA
Script
ver.1
ver.2
ver.3
ver.4 もめ過ぎて破棄
ver.5
ver.6 → ver.2015 数え方を変更
ver.2016
ver.2017 作成中
このECMAScriptは、時代とともに新しくなってきました。
ver.6からは毎年新しくするよ!っていう意気込みで
数え方を西暦に変更しました。
つまり、毎年便利な機能が増え続けているのです。
もっと詳しく⤴︎
詳しく⤴︎
ECMAScriptはどんどん増えていきますが、
各エンジンはすぐには追いけていない状況です。
だから便利な機能は、まだ使えないことが多いのです。
ECMA
Script
詳しく⤴︎
ECMA
Script ESNext = 未来のJavaScript
この、まだ実質使えないものも含めた、
来年出る最新のECMAScriptのバージョンを
ESNextと呼びます。(今だと2017がそれ)
来年版
便利なESNextでプログラムを書きたい。。
でも動かない。。。
そこですごい人は考えました。
『一番安定してどのブラウザでも動くES5に変換すればいい!
そうして造られたのがBabelという変形屋さん。
(トランスパイラといいます)
ESNext
(未来のJavaScript)
ES5
直接は無理でも、変形屋さんを通すことで、
私たちは未来のJavaScriptをすぐに使えるようになりました。
ESNext
(未来のJavaScript)
ES5
hello🙅 🙆Error
未来はこの手の中に
お粗末様でした。
動かし方や変換の仕方はまた別の機会に。
フォント:
東青梅ゴシックC⤴︎
こども丸ゴシック⤴︎
鉄瓶ゴシック⤴︎
ゆずポップ⤴︎
いらすと: いらすとや⤴︎
素材

More Related Content

What's hot

並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Yoshimura Soichiro
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
Kota Saito
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
murachue
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
Mikiya Okuno
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
 
技術ブログを書こう
技術ブログを書こう技術ブログを書こう
技術ブログを書こう
akira6592
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
 

What's hot (20)

並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
技術ブログを書こう
技術ブログを書こう技術ブログを書こう
技術ブログを書こう
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 

Viewers also liked

【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
 
Maglica - A Simple Internal Cloud Tool at #techkayac
Maglica - A Simple Internal Cloud Tool at #techkayacMaglica - A Simple Internal Cloud Tool at #techkayac
Maglica - A Simple Internal Cloud Tool at #techkayacGosuke Miyashita
 
Node.js with WebRTC DataChannel
Node.js with WebRTC DataChannelNode.js with WebRTC DataChannel
Node.js with WebRTC DataChannel
mganeko
 
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
Kazuo Murakami
 
Tokyo nodefestival workshop_20161112
Tokyo nodefestival workshop_20161112Tokyo nodefestival workshop_20161112
Tokyo nodefestival workshop_20161112
Junichi Okamura
 
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
Daisuke Tamada
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
Isamu Suzuki
 

Viewers also liked (7)

【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
 
Maglica - A Simple Internal Cloud Tool at #techkayac
Maglica - A Simple Internal Cloud Tool at #techkayacMaglica - A Simple Internal Cloud Tool at #techkayac
Maglica - A Simple Internal Cloud Tool at #techkayac
 
Node.js with WebRTC DataChannel
Node.js with WebRTC DataChannelNode.js with WebRTC DataChannel
Node.js with WebRTC DataChannel
 
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
 
Tokyo nodefestival workshop_20161112
Tokyo nodefestival workshop_20161112Tokyo nodefestival workshop_20161112
Tokyo nodefestival workshop_20161112
 
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
 

Similar to JavaScriptの仕組みと未来のJavaScript ~ESNextとは~

Js frameworkの紹介
Js frameworkの紹介Js frameworkの紹介
Js frameworkの紹介
Ryo Shimada
 
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
大樹 小倉
 
JVMの中身を可視化してみた
JVMの中身を可視化してみたJVMの中身を可視化してみた
JVMの中身を可視化してみたKengo Toda
 
React.jsを勉強しよう
React.jsを勉強しようReact.jsを勉強しよう
React.jsを勉強しよう
Hikaru Sato
 
ServerSideJavaScript
ServerSideJavaScriptServerSideJavaScript
ServerSideJavaScript
Ryunosuke SATO
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
Akinari Tsugo
 
JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめ
Yuki Ishikawa
 
Antのススメ
AntのススメAntのススメ
Antのススメ
Tatsumi Naganuma
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
龍一 田中
 
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
覚醒JavaScript  -ES6で作るIsomophicアプリケーション-覚醒JavaScript  -ES6で作るIsomophicアプリケーション-
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
Oonishi Keitarou
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
 
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
Yusuke Suzuki
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
Takenori Nakagawa
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotationEIICHI KIMURA
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
Kazuhiro Sera
 
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルJavaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Maaya Ishida
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
 
Play frameworkについて
Play frameworkについてPlay frameworkについて
Play frameworkについてShinobu Okano
 
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
dynamis
 

Similar to JavaScriptの仕組みと未来のJavaScript ~ESNextとは~ (20)

Js frameworkの紹介
Js frameworkの紹介Js frameworkの紹介
Js frameworkの紹介
 
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
 
JVMの中身を可視化してみた
JVMの中身を可視化してみたJVMの中身を可視化してみた
JVMの中身を可視化してみた
 
React.jsを勉強しよう
React.jsを勉強しようReact.jsを勉強しよう
React.jsを勉強しよう
 
ServerSideJavaScript
ServerSideJavaScriptServerSideJavaScript
ServerSideJavaScript
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
 
JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめ
 
Antのススメ
AntのススメAntのススメ
Antのススメ
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
 
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
覚醒JavaScript  -ES6で作るIsomophicアプリケーション-覚醒JavaScript  -ES6で作るIsomophicアプリケーション-
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotation
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
 
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルJavaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
Play frameworkについて
Play frameworkについてPlay frameworkについて
Play frameworkについて
 
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
 

More from Yuki Hirano

H19.テクニカルエンジニア(データベース)午後ⅰ 1
H19.テクニカルエンジニア(データベース)午後ⅰ 1H19.テクニカルエンジニア(データベース)午後ⅰ 1
H19.テクニカルエンジニア(データベース)午後ⅰ 1Yuki Hirano
 
平成22年度 秋期 cs 午前ⅱ
平成22年度 秋期 cs 午前ⅱ平成22年度 秋期 cs 午前ⅱ
平成22年度 秋期 cs 午前ⅱYuki Hirano
 
平成21年度 秋期 cs 午前ⅱ
平成21年度 秋期 cs 午前ⅱ平成21年度 秋期 cs 午前ⅱ
平成21年度 秋期 cs 午前ⅱYuki Hirano
 
平成21年度 秋期 cs 午前ⅱ
平成21年度 秋期 cs 午前ⅱ平成21年度 秋期 cs 午前ⅱ
平成21年度 秋期 cs 午前ⅱYuki Hirano
 
ソーシャルゲーム
ソーシャルゲームソーシャルゲーム
ソーシャルゲームYuki Hirano
 

More from Yuki Hirano (8)

H19.テクニカルエンジニア(データベース)午後ⅰ 1
H19.テクニカルエンジニア(データベース)午後ⅰ 1H19.テクニカルエンジニア(データベース)午後ⅰ 1
H19.テクニカルエンジニア(データベース)午後ⅰ 1
 
平成22年度 秋期 cs 午前ⅱ
平成22年度 秋期 cs 午前ⅱ平成22年度 秋期 cs 午前ⅱ
平成22年度 秋期 cs 午前ⅱ
 
平成21年度 秋期 cs 午前ⅱ
平成21年度 秋期 cs 午前ⅱ平成21年度 秋期 cs 午前ⅱ
平成21年度 秋期 cs 午前ⅱ
 
平成21年度 秋期 cs 午前ⅱ
平成21年度 秋期 cs 午前ⅱ平成21年度 秋期 cs 午前ⅱ
平成21年度 秋期 cs 午前ⅱ
 
20 秋
20 秋20 秋
20 秋
 
20 秋
20 秋20 秋
20 秋
 
ソーシャルゲーム
ソーシャルゲームソーシャルゲーム
ソーシャルゲーム
 
20 秋
20 秋20 秋
20 秋
 

JavaScriptの仕組みと未来のJavaScript ~ESNextとは~