CoffeeScript

728 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
728
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

CoffeeScript

  1. 1. CoffeeScript 전용우12년 11월 29일 목요일
  2. 2. CoffeeScript?12년 11월 29일 목요일
  3. 3. 12년 11월 29일 목요일
  4. 4. Feature12년 11월 29일 목요일
  5. 5. no brace, semicolon if(true){ if true alert(1); alert 1 }else{ else alert(2); alert 2 }12년 11월 29일 목요일
  6. 6. Function var square = function(x){ square = (x) -> x * x return x * x; }12년 11월 29일 목요일
  7. 7. Object var bareObj = { bareObj = “name” : “전용우”, name : “전용우” “id” : “mixed” id : “mixed” };12년 11월 29일 목요일
  8. 8. Conditional Assignment var date; if(friday){ date = sue; }else{ date = jill; } --------------------------------------------------- date = if friday then sue else jill12년 11월 29일 목요일
  9. 9. Loops/comprehensions foods = [broccoli, spinach, chocolate] eat food for food in foods when food isnt chocolate12년 11월 29일 목요일
  10. 10. Splats joinArgs = (first, middles..., last) -> parts = [] if first? parts.push first.toUpperCase() for middle in middles parts.push middle.toLowerCase() if last? parts.push last.toUpperCase() console.log joinArgs("a"); # A console.log joinArgs("a", "b"); #AB console.log joinArgs("a", "B", "C", "d"); #AbcD12년 11월 29일 목요일
  11. 11. String Interpolation square = (x) -> x*x id = "mixed" str = "#{id} is #{square()}"12년 11월 29일 목요일
  12. 12. Destructuring Assignment theBait = 1000 theSwitch = 0 [theBait, theSwitch] = [theSwitch, theBait]12년 11월 29일 목요일
  13. 13. Function binding Account = (customer, cart) -> @customer = customer @cart = cart $(.shopping_cart).bind click, (event) => @customer.purchase @cart12년 11월 29일 목요일
  14. 14. 장점12년 11월 29일 목요일
  15. 15. 난해한 JS 해결 "true" == true // true "true" is true // false "true" === true // false "true" is "true" // true "0" == false // true "0" is false // false "0" == 0 // true "0" is 0 // false 0 === false // false 0 is 0 // true "" == false // true "" is false // false12년 11월 29일 목요일
  16. 16. 간결한 코드 cubes = (math.cube num for num in list) -------------------------------------------------- cubes = (function() { var _i, _len, _results; _results = []; for (_i = 0, _len = list.length; _i < _len; _i++) { num = list[_i]; _results.push(math.cube(num)); } return _results; })();12년 11월 29일 목요일
  17. 17. 가독성 var _this = this; $(this.config.add).click(function(e){ $(_this.config.todolist).append("<li>"+$(_this.config.todo).val()+"</li>"); }); -------------------------------------------------- $(@config.add).click (e)=> $(@config.todolist).append "<li>#{$(@config.todo).val()}</li>"12년 11월 29일 목요일
  18. 18. ES.next • Arrow Function • Destructuring Assignment • Default Value12년 11월 29일 목요일
  19. 19. 12년 11월 29일 목요일
  20. 20. 단점12년 11월 29일 목요일
  21. 21. Not Superset of JavaScript.12년 11월 29일 목요일
  22. 22. Learning Curve12년 11월 29일 목요일
  23. 23. Debugging12년 11월 29일 목요일
  24. 24. 실제로 써보니...12년 11월 29일 목요일
  25. 25. 지나치게 엄격한 문법 doSomething () -> hello doSomething() -> hello -------------------------------------------------- doSomething(function() { return hello; }); doSomething()(function() { return hello; });12년 11월 29일 목요일
  26. 26. 지나치게 엄격한 문법 doSomething () -> hello doSomething() -> hello -------------------------------------------------- doSomething(function() { return hello; }); doSomething()(function() { return hello; });12년 11월 29일 목요일
  27. 27. 가독성은 케바케 if (five && six && seven) doStuff(); -------------------------------------------------- doStuff() if five and six and seven12년 11월 29일 목요일
  28. 28. SourceMap?12년 11월 29일 목요일
  29. 29. (Ruby || Python || Node.JS) + CoffeeScript12년 11월 29일 목요일
  30. 30. Thank you.12년 11월 29일 목요일

×