CoffeeScript

A33de8445891945c81e488c9ce71e8cc?s=47 Mann
January 22, 2011

 CoffeeScript

Javascript in a simple way

A33de8445891945c81e488c9ce71e8cc?s=128

Mann

January 22, 2011
Tweet

Transcript

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

    22 Jan 2011 @HackerSpacePP @lchanmann
  2. CoffeeScript CoffeeScript • One-to-one with JavaScript • Better functional syntax

    • Compiles to the good parts
  3. Why CoffeeScript? Why CoffeeScript? • Less code • Readability •

    Easy to understand, and maintain • But … you should know how JavaScript's concept work
  4. JavaScript JavaScript

  5. CoffeeScript CoffeeScript

  6. JavaScript JavaScript

  7. Coffee Coffee

  8. JavaScript JavaScript

  9. CoffeeScript CoffeeScript

  10. square = (x) -> x * x area = (x,

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

    age: 9 Objects Objects kids = { brother: { name: "Max", age: 11 }, sister: { name: "Ida", age: 9 } }; >>
  12. 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); >>
  13. gold = silver = rest = "unknown" awardMedals = (first,

    second, others...) -> gold = first silver = second rest = others Splats... Splats...
  14. 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
  15. 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
  16. 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/
  17. Lim Chanmann Lim Chanmann http://chanmannlim.wordpress.com/ @lchanmann chanmannlim@gmail.com InSTEDD