Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CoffeeScript

Mann
January 22, 2011

 CoffeeScript

Javascript in a simple way

Mann

January 22, 2011
Tweet

More Decks by Mann

Other Decks in Programming

Transcript

  1. CoffeeScript JavaScript in a simple way Open Tech Talk –

    22 Jan 2011 @HackerSpacePP @lchanmann
  2. Why CoffeeScript? Why CoffeeScript? • Less code • Readability •

    Easy to understand, and maintain • But … you should know how JavaScript's concept work
  3. square = (x) -> x * x area = (x,

    y) -> x * y cube = (x) -> x * square x Functions Functions
  4. kids = brother: name: "Max" age: 11 sister: name: "Ida"

    age: 9 Objects Objects kids = { brother: { name: "Max", age: 11 }, sister: { name: "Ida", age: 9 } }; >>
  5. outer = 1 change = -> inner = -1 outer

    = 10 inner = change() Lexical Scoping / Variable Safety Lexical Scoping / Variable Safety (function() { var change, inner, outer; outer = 1; change = function() { var inner; inner = -1; return (outer = 10); }; inner = change(); }).call(this); >>
  6. gold = silver = rest = "unknown" awardMedals = (first,

    second, others...) -> gold = first silver = second rest = others Splats... Splats...
  7. class Animal constructor: (@name) -> move: (meters) -> alert @name

    + " moved " + meters + "m." class Snake extends Animal move: -> alert "Slithering..." super 5 sam = new Snake "Sammy the Python" sam.move() OOP OOP
  8. The Rest... The Rest... ✔ Existential operator ✔ Pattern matching

    with object literals ✔ Switch/When/Else ✔ Chained comparison ✔ Array comprehension ✔ Array slicing and splicing with ranges ✔ Everything is an expression; always a return value ✔ Function binding syntactical sugar ✔ String and RegExp Interpolation ✔ Multiline Strings, Heredocs, and Block Comments ✔ "text/coffeescript" script tags with extras/coffee-script.js ✔ It's just JavaScript
  9. Last but not lease Last but not lease • http://ryan.mcgeary.org/talks/2010/10/21/coffeescript-novarug/

    • http://www.slideshare.net/mtaberski/coffee-script-6089214 • http://jashkenas.github.com/coffee-script/