CoffeeScript - JavaScript in a simple way
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

CoffeeScript - JavaScript in a simple way

on

  • 3,104 views

 

Statistics

Views

Total Views
3,104
Views on SlideShare
3,101
Embed Views
3

Actions

Likes
10
Downloads
85
Comments
0

1 Embed 3

http://webexpo.innit.cz 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

CoffeeScript - JavaScript in a simple way Presentation Transcript

  • 1. CoffeeScriptJavaScript in a simple way Open Tech Talk – 22 Jan 2011 @HackerSpacePP @lchanmann
  • 2. CoffeeScript● One-to-one with JavaScript● Better functional syntax● Compiles to the good parts
  • 3. Why CoffeeScript?● Less code● Readability● Easy to understand, and maintain● But … you should know how JavaScripts concept work
  • 4. JavaScript
  • 5. CoffeeScript
  • 6. JavaScript
  • 7. Coffee
  • 8. JavaScript
  • 9. CoffeeScript
  • 10. Functionssquare = (x) -> x * xarea = (x, y) -> x * ycube = (x) -> x * square x
  • 11. Objects kids = { brother: {kids = name: "Max", brother: >> age: 11 name: "Max" }, age: 11 sister: { sister: name: "Ida", name: "Ida" age: 9 age: 9 } };
  • 12. Lexical Scoping / Variable Safety (function() { var change, inner, outer; outer = 1;outer = 1 >> change = function() {change = -> var inner; inner = -1 inner = -1; outer = 10 return (outer = 10);inner = change() }; inner = change(); }).call(this);
  • 13. Splats...gold = silver = rest = "unknown"awardMedals = (first, second, others...) -> gold = first silver = second rest = others
  • 14. OOPclass Animal constructor: (@name) -> move: (meters) -> alert @name + " moved " + meters + "m."class Snake extends Animal move: -> alert "Slithering..." super 5sam = new Snake "Sammy the Python"sam.move()
  • 15. 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✔ Its just JavaScript
  • 16. 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 Chanmannhttp://chanmannlim.wordpress.com/ @lchanmann chanmannlim@gmail.com InSTEDD