SlideShare a Scribd company logo
traceur-compilerで
未来のJavaScriptを体験
altJS福岡勉強会第1回 発表資料
Photo by Web制作向け無料写真素材/ぱくたそ http://www.pakutaso.com
-自己紹介-
株式会社キャムの江原と申します。
Excelとかプログラマとかしてます。
twitter : @itokami1123
企業の経営戦略に役立つサービス「CAM MACS」を
AWSにて提供してます。
今日は未来のJavaScriptが体験出来る
Traceurについて発表したいと思います!
ふーん、で今日はなんで Traceurなの?
altJSはTypeScriptとかが有名じゃないの?
(
/タ、タシカニ…
うちの会社はAngularJS1.2を使って開発しています。
どうやらAngularJS2.0の開発は…
All code in AngularJS 2 is already being written in ES6. As ES6 doesn’t
run in browsers today, we’re using the Traceur compiler to generate the
nice ES5 that runs everywhere. We’re working with the Traceur team to
build support for a few extensions like annotations and assertions. We
call this set of extensions "ES6 +A".
http://blog.angularjs.org/2014/03/angular-20.html
次の2は Traceurつかって開発してるよ〜
という訳でAngularJS2に備えて
TraceurとES6について発表させてください!
Traceur(traceur-compiler)って何?聞いた事無いけど?
(
/タ、タシカニ…
tracer-compiler(トレーサーコンパイラー)とは
https://github.com/google/traceur-compiler
tracer-compiler(トレーサーコンパイラー)とは
https://github.com/google/traceur-compiler
• 新しいJavaScript(ES6)を今のJavaScript(ES5)へコンパ
イルして動作させる事ができる
• 価値がある新しいJavaScriptの機能の設計を知ることが目標
のような事が書いてあります(英語自信無し…)、なので実務では使えなさそう…
へ?ES6って何?
(
/ソウイエバ…
ECMAScript6とは
Mozilla における ECMAScript 6 のサポートより

https://developer.mozilla.org/ja/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla
"
”
ECMAScript 6 は "Harmony" または "ES.next" のコードネームで呼称される、
"
JavaScript の次期標準仕様です。
TC39 has decided to move the formal publication date of the
ECMAScript 6 standard to June 2015.
http://www.2ality.com/2014/06/es6-schedule.html
仕様確定は来年の6月みたい。来年は盛り上がるかも。
ではさっそくTraceurを使ってES6が
どんな風にかけるか確認してみましょう!
まずはインストールすべし!
$ npm install traceur -g
(
Node.jsは必要なんやねー
コンパイル!!
traceur --script src/es6/*.js --out dist/app.js
"
ここにある複数のES6を
コンパイルして1ファイルに
1. Array Comprehension ( Array内包表記 )
// 1. Array Comprehension ( Array内包表記 )
var array = [
for (x of ["A", "B"])
for (y of [0, 1, 2, 4])
x + '' + y ];
"
console.log(array);
["A0", "A1", "A2", "A4", "B0", "B1", "B2", "B4"]
2. Arrow Function(アロー関数)
// 2. Arrow Function(アロー関数)
var squareEs5 = function (x) {
return x * x;
};
var squareEs6 = (x) => {
return x * x;
};
console.log("squareEs5(2)=", squareEs5(2));
console.log("squareEs6(2)=", squareEs6(2));
squareEs5(2)= 4
squareEs6(2)= 4
// 引数カッコとreturnの省略
"
var squareEs6_min = x => x * x;
"
console.log("squareEs6_min(2)=", squareEs6_min(2));
"
squareEs6_min(2)= 4
// thisの動きが違うよ
var ore = {name: "nobio"};
ore.sayEs5 = function () {
var getName = function () {
return this.name;
};
return "My name is " + getName();
}
ore.sayEs6 = function () {
var getName = ()=> this.name;
return "My name is " + getName();
};
console.log("ore.sayEs5()=", ore.sayEs5());
console.log("ore.sayEs6()=", ore.sayEs6());
ore.sayEs5()= My name is
ore.sayEs6()= My name is nobio
"
function(){}の中のthisは新た
に作られるんですけど
"
=>は外のthisが
使えます!
Arrow Function便利ですね!
TypeScriptにもCoffeeScriptなどにもあるみたいですね。
angular.module("controllers").
controller("Es5Ctrl",
["$scope", "worldServ",
function ($scope, worldServ) {
$scope.data = worldServ.data;
$scope.didPush = function () {
worldServ.add();
};
}]);
普段、functionをいっぱい書いて開発すると思うんですけど…
※上の例はAngularJSのController
angular.module("controllers").
controller("Es6Ctrl",
["$scope", "worldServ",
($scope, worldServ) => {
$scope.data = worldServ.data;
$scope.didPush = () => {
worldServ.add();
};
}]);
ES6になると随分タイプ量が減るしすっきりかけますね。
この例はAngularJS1.2です。Angular2ではどんな風に書くんでしょうかねぇ…
3. Classes
class Robo {
constructor(id) {
this.id = id;
this.power_ = 100;
}
attack(robo) {
robo.power_ -= 110;
}
}
こんな風に普通のclassも書く事が出来ます。
class Nekogata extends Robo {
constructor(id, name) {
super(id);
}
attack(robo) {
super.attack(robo);
}
get isKO() {
return this.power_ < 0;
}
get genki() {
return this.power_;
}
set genki(value) {
this.power_ = value;
}
}
継承も使えます!
継承元のメソッドを呼べます
プロパティ取得時の
名称をつけれます。
プロパティ設定時の
名称をつけれます。
var doraemoon = new Nekogata(1);
var jibanyoon = new Nekogata(2);
"
doraemoon.attack(jibanyoon);
console.log("jibanyoon.genki=", jibanyoon.genki);
console.log("jibanyoon.isKO=", jibanyoon.isKO);
"
jibanyoon.genki = 100;
console.log("jibanyoon.genki=", jibanyoon.genki);
console.log("jibanyoon.isKO=", jibanyoon.isKO);
これを動かすと….
ドット(.)で値取得
ドット(.)で値設定
jibanyoon.genki= -10
jibanyoon.isKO= true
jibanyoon.genki= 100
jibanyoon.isKO= false
4. Default Parameter
// 4. Default Parameter
var func01 = (name = "nanashi", age=99) => {
return name + " is " + age;
};
console.log(func01( "nobi", 10));
console.log(func01( "nobi" ));
console.log(func01( ));
引数にデフォルト値が設定できます。
nobi is 10
nobi is 99
nanashi is 99
5. Destructuring Assignment
var goku = 10000, ginyu = 5000;
"
console.log("goku,ginyu ", goku, ginyu);
var [goku, ginyu] = [ginyu, goku];
console.log("goku,ginyu ", goku, ginyu);
"
var saiya = {gohan: 10000, bejita: 8000};
var {gohan, bejita} = saiya;
console.log("gohan=",gohan,"bejita=", bejita);
変数値の交換やオブジェクトの値を変数に設定したりできます。
goku,ginyu 10000 5000
goku,ginyu 5000 10000
gohan= 10000 bejita= 8000
値の交換!
Objectプロパティから変数設定!
す、すみません..ここで力つきました…
まだまだ…たくさん機能があります。
- Iterators and For Of
- Generator Comprehension
- Generators
- Modules
- Numeric Literals
- Property Method Assignment
- Object Initializer Shorthand
- Rest Parameters & Spread
- Template Literals
- Promises
- Block Scoped Binding (Experimental)
- Symbol (Experimental)
traceurについて分かるすばらしいブログがございます。
勉強してみたい方は是非↓こちらがお勧めです!
"
traceur-compiler 入門
http://yosuke-furukawa.hatenablog.com/entry/
2014/07/31/093041
まとめ!
"
- traceur-compilerはES6の機能が体験出来る!
"
- 将来の学習用としてよさそう!

"
- 実案件では…他のaltJSが良さそう

(安定して実績が増えればいいのですけど..)
ご清聴ありがとうございました!

More Related Content

PDF
春のJs祭り2015 lt
Yusuke Katsuki
 
PDF
Elasticsearch at CrowdWorks
佑介 九岡
 
PPTX
Javascriptのデザインパターン【勉強会資料】
株式会社キャッチアップ
 
PDF
AsakusaのドキュメントをDashで見たい
Takashi Aoe
 
PDF
AnsibleによるInfrastructure as code入門
kk_Ataka
 
PDF
VPとSPIDERを使ったMySQL運用
Ryuta Kamizono
 
PDF
Asakusa fwはじめの一歩 0.7.0
鉄平 土佐
 
PDF
WebComponentsとPolymer
Takahiro Maki
 
春のJs祭り2015 lt
Yusuke Katsuki
 
Elasticsearch at CrowdWorks
佑介 九岡
 
Javascriptのデザインパターン【勉強会資料】
株式会社キャッチアップ
 
AsakusaのドキュメントをDashで見たい
Takashi Aoe
 
AnsibleによるInfrastructure as code入門
kk_Ataka
 
VPとSPIDERを使ったMySQL運用
Ryuta Kamizono
 
Asakusa fwはじめの一歩 0.7.0
鉄平 土佐
 
WebComponentsとPolymer
Takahiro Maki
 

What's hot (20)

PDF
わたしを支える技術
yoku0825
 
PPTX
T sql の parse と generator
Oda Shinsuke
 
PDF
Elasticsearchで作る形態素解析サーバ
Shinsuke Sugaya
 
PDF
NSHashTableでDelegatesパターン
Masaki Oshikawa
 
PDF
elasticsearchソースコードを読みはじめてみた
furandon_pig
 
PDF
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
Shinsuke Sugaya
 
PDF
自作saoriの紹介
wizstargaer
 
PDF
Elasticsearchベースの全文検索システムFess
Shinsuke Sugaya
 
PDF
Zabbix Conference Japan 2018 LT Configure by Ansible
Yukiya Hayashi
 
PDF
Sbtのマルチプロジェクトはいいぞ
Yoshitaka Fujii
 
PPTX
検索のダウンタイム0でバックアップからindexをリストアする方法
kbigwheel
 
PDF
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
yoku0825
 
PDF
hbstudy#6LTyuzorock
yuzorock
 
PDF
ElasticsearchとTasteプラグインで作るレコメンドシステム
Shinsuke Sugaya
 
PDF
Elasticsearchプラグインの作り方
Shinsuke Sugaya
 
PDF
Web技術勉強会 第38回
龍一 田中
 
PDF
MySQLユーザ視点での小さく始めるElasticsearch
Kentaro Yoshida
 
PDF
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Kei Nakazawa
 
PPTX
As you like, PHP on Azure - お気に召すままに!
Kazumi OHIRA
 
PPTX
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
Kohei Noda
 
わたしを支える技術
yoku0825
 
T sql の parse と generator
Oda Shinsuke
 
Elasticsearchで作る形態素解析サーバ
Shinsuke Sugaya
 
NSHashTableでDelegatesパターン
Masaki Oshikawa
 
elasticsearchソースコードを読みはじめてみた
furandon_pig
 
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
Shinsuke Sugaya
 
自作saoriの紹介
wizstargaer
 
Elasticsearchベースの全文検索システムFess
Shinsuke Sugaya
 
Zabbix Conference Japan 2018 LT Configure by Ansible
Yukiya Hayashi
 
Sbtのマルチプロジェクトはいいぞ
Yoshitaka Fujii
 
検索のダウンタイム0でバックアップからindexをリストアする方法
kbigwheel
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
yoku0825
 
hbstudy#6LTyuzorock
yuzorock
 
ElasticsearchとTasteプラグインで作るレコメンドシステム
Shinsuke Sugaya
 
Elasticsearchプラグインの作り方
Shinsuke Sugaya
 
Web技術勉強会 第38回
龍一 田中
 
MySQLユーザ視点での小さく始めるElasticsearch
Kentaro Yoshida
 
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Kei Nakazawa
 
As you like, PHP on Azure - お気に召すままに!
Kazumi OHIRA
 
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
Kohei Noda
 
Ad

Similar to traceur-compilerで未来のJavaScriptを体験 (20)

PDF
traceur-compilerで ECMAScript6を体験
Toshio Ehara
 
PPTX
エンタープライズ分野での実践AngularJS
Ayumi Goto
 
PDF
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
 
PPTX
今日から使って先取り ECMAScript6
Ryo Ohe
 
PDF
Ecmascript2015とその周辺について
豊明 尾古
 
PDF
Serverside ES6@Livesense technight
Seiji Takahashi
 
PDF
ECMAScript 6 Features(PDF 版)
taskie
 
PDF
Learn ES2015
Muyuu Fujita
 
PDF
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
 
PPTX
Nds meetup8 lt
ushiboy
 
PDF
JavaScript/CSS 2015 Autumn
Koji Ishimoto
 
PDF
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
 
PDF
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
 
PDF
150421 es6とかな話
kotaro_hirayama
 
PDF
JavaScript (ECMAScript) 2013
dynamis
 
PDF
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
 
PDF
TypeScript と Visual Studio Code
Akira Inoue
 
PDF
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
 
PDF
TypeScript 1.0 オーバービュー
Akira Inoue
 
PDF
LT#8 乗るしかないこのECMA Script 2015に
do7be
 
traceur-compilerで ECMAScript6を体験
Toshio Ehara
 
エンタープライズ分野での実践AngularJS
Ayumi Goto
 
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
 
今日から使って先取り ECMAScript6
Ryo Ohe
 
Ecmascript2015とその周辺について
豊明 尾古
 
Serverside ES6@Livesense technight
Seiji Takahashi
 
ECMAScript 6 Features(PDF 版)
taskie
 
Learn ES2015
Muyuu Fujita
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
 
Nds meetup8 lt
ushiboy
 
JavaScript/CSS 2015 Autumn
Koji Ishimoto
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
 
150421 es6とかな話
kotaro_hirayama
 
JavaScript (ECMAScript) 2013
dynamis
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
 
TypeScript と Visual Studio Code
Akira Inoue
 
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
 
TypeScript 1.0 オーバービュー
Akira Inoue
 
LT#8 乗るしかないこのECMA Script 2015に
do7be
 
Ad

More from Toshio Ehara (20)

PDF
iPhoneアプリを Javaで書くよ?
Toshio Ehara
 
PDF
Java初心者勉強会(2015/08/07)資料
Toshio Ehara
 
PDF
Java電卓勉強会資料
Toshio Ehara
 
PDF
BABELで、ES2015(ES6)を学ぼう!
Toshio Ehara
 
PDF
AngularJSで業務システムUI部品化
Toshio Ehara
 
PDF
AngularJS入門の巻2
Toshio Ehara
 
PDF
JenkinsをJava開発でこんな感じで使っています
Toshio Ehara
 
PDF
AngularJS入門の巻
Toshio Ehara
 
PDF
AngularJS+TypeScriptを試してみた。
Toshio Ehara
 
PDF
AngularJSのDirectiveで俺俺タグつくっちゃお
Toshio Ehara
 
PDF
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
 
PDF
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
Toshio Ehara
 
PDF
福岡のIT勉強会情報の集め方(LT資料)
Toshio Ehara
 
PDF
BACKBONE.JSによるWebアプリケーション開発について
Toshio Ehara
 
PDF
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
Toshio Ehara
 
PDF
JavaScriptのテストコード 一緒に勉強しませんか??
Toshio Ehara
 
PDF
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
Toshio Ehara
 
PDF
LT Leap MotionとJavaScriptで遊ぼう!
Toshio Ehara
 
PDF
JavaScriptもBACKBONE.JSならスッキリ ~MVCぽいのを初体験!~
Toshio Ehara
 
PDF
BACKBONE.JSでMVC始めませんか?
Toshio Ehara
 
iPhoneアプリを Javaで書くよ?
Toshio Ehara
 
Java初心者勉強会(2015/08/07)資料
Toshio Ehara
 
Java電卓勉強会資料
Toshio Ehara
 
BABELで、ES2015(ES6)を学ぼう!
Toshio Ehara
 
AngularJSで業務システムUI部品化
Toshio Ehara
 
AngularJS入門の巻2
Toshio Ehara
 
JenkinsをJava開発でこんな感じで使っています
Toshio Ehara
 
AngularJS入門の巻
Toshio Ehara
 
AngularJS+TypeScriptを試してみた。
Toshio Ehara
 
AngularJSのDirectiveで俺俺タグつくっちゃお
Toshio Ehara
 
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
 
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
Toshio Ehara
 
福岡のIT勉強会情報の集め方(LT資料)
Toshio Ehara
 
BACKBONE.JSによるWebアプリケーション開発について
Toshio Ehara
 
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
Toshio Ehara
 
JavaScriptのテストコード 一緒に勉強しませんか??
Toshio Ehara
 
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
Toshio Ehara
 
LT Leap MotionとJavaScriptで遊ぼう!
Toshio Ehara
 
JavaScriptもBACKBONE.JSならスッキリ ~MVCぽいのを初体験!~
Toshio Ehara
 
BACKBONE.JSでMVC始めませんか?
Toshio Ehara
 

traceur-compilerで未来のJavaScriptを体験