Slide 1

Slide 1 text

Forward Fast Javascript Sho Kusano / rosylilly

Slide 2

Slide 2 text

Profile Sho Kusano rosylilly Facebook: sho.kusano Twitter: rosylilly Mail: rosylilly@aduca.org

Slide 3

Slide 3 text

Profile Works Dwango/Qteras Model (স) 10/28(Fri) Numero Tokyo

Slide 4

Slide 4 text

―― Too Many Works ࢓ࣄ͸ࣺͯΔ΄Ͳ͋Δ

Slide 5

Slide 5 text

Q. Javascript͕؆୯ͩͱࢥ͏ํ ஏ͔͕ͣ͠ΒͣڍखΛ͓ئ͍͠·͢

Slide 6

Slide 6 text

A. ๻ʹͱͬͯ͸೉͍͠ Ͱ͖ΔݶΓॻ͖ͨ͘ͳ͍

Slide 7

Slide 7 text

ָ͕ग़དྷΕ͹ͦΕ͕Ұ൪

Slide 8

Slide 8 text

ָͯ͠ ͓͕ۚ ཉ͍͠

Slide 9

Slide 9 text

CoffeeScript is a little language that compiles into JavaScript. http://coffeescript.org/

Slide 10

Slide 10 text

Fast Forward Javascript ߴ଎ʹ લ΁ਐΉͨΊͷ CoffeeScript

Slide 11

Slide 11 text

Javascript ʹ͸᠘͕ଟ͍ this scope, Prototypical Object, Object forEach

Slide 12

Slide 12 text

ʰલਐ͢Δ͜ͱʱʹूதग़དྷͳ͍

Slide 13

Slide 13 text

Let’s try CoffeeScript!

Slide 14

Slide 14 text

Example Cases

Slide 15

Slide 15 text

Example Case: This binding var object = { name: 'obj', func: function(){ console.log(this.name); } } object.func(); // → obj var f = object.func; f(); // → undefined var other = {name: 'other', func: f}; other.func(); // → other

Slide 16

Slide 16 text

Example Case: This Binding class Example name: 'obj' func: ()=> console.log @name object = new Example object.func() # → obj f = object.func f() # → obj other = { name: 'other' func: f } other.func() # → obj

Slide 17

Slide 17 text

Example Case: Prototypical Object var Abstruct = function() { this.prop = 'property'; } Abstruct.prototype.func = function(){}; var Class = function() { } Class.prototype = {}; for(var method in Abstruct.prototype) { Class.prototype[method] = Abstruct.prototype[method]; }

Slide 18

Slide 18 text

Example Case: Prototypical Object class Abstruct prop: 'property' func: ()-> class Class extends Abstruct

Slide 19

Slide 19 text

Example Case: Object forEach var object = { a: 1, b: 2, c: 3 } for(var key in object) { if(object.hasOwnProperty(key)) console.log(object[key]); }

Slide 20

Slide 20 text

Example Case: Object forEach object = { a: 1 b: 2, c: 3 } for key, val of object console.log val

Slide 21

Slide 21 text

Many Features! Destructuring Assignment, Function binding, Embedded JavaScript, Switch/When/Else, Try/Catch/Finally, Chained Comparisons, String Interpolation, Block Strings, and Block Comments, Block Regular Expressions, Cake, and Cakefiles, "text/coffeescript" Script Tags

Slide 22

Slide 22 text

Don’t worry!!

Slide 23

Slide 23 text

֮͑Δͷ͕େมͦ͏... Javascript Ͱۤ͠Ή࣌ؒͱ CoffeeScript Λ֮͑Δ࣌ؒ ͲͪΒ͕௕͍͔ ↓

Slide 24

Slide 24 text

΋͏Ұݸݴޠ֮͑Δͷ͸ͪΐͬͱ…… ͋͘·Ͱ JS ͷγϯλοΫεγϡΨʔͱ ଊ͑ͯΑ͍ (JSX, HeXe ͳͲͱൺ΂ͯ) ↓

Slide 25

Slide 25 text

ಋೖ͕େมͦ͏…… Rails3 ͕ WebFront ͳΒࠓ͔Β࢖͑·͢ɻ ͦͷଞɺ Coffee ͔Β JS ʹม׵Ͱ͖Δ͠ ϒϥ΢β্Ͱ Coffee ಈ͔͢࢓૊Έ΋͋Δ ↓

Slide 26

Slide 26 text

ϝϯόʔͷઆಘ͕…… ࣗ෼͕ࣾ಺ͰΤϰΝϯδΣϦετʹͳΔνϟϯεʂ ↓

Slide 27

Slide 27 text

Thank you for listening. rosylilly Fin Fast Forward Javascript