Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Standard text messaging rates apply

CoffeeScript - JavaScript in a simple way

2,756
views

Published on

Published in: Technology

10 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total Views
2,756
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
85
0
Likes
10
Embeds 0
No embeds

No notes for slide

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