CoffeeScript
최근 수정 시각: (5년 전)
#!syntax coffeescript
alert "Hello, World!" # alert 방식
document.write "Hello, world!" # 문서에 쓰는 방식.
console.log "Hello, world!" # 콘솔 방식
1. 개요 [편집]
공식 사이트
자바스크립트로 컴파일 되는 프로그래밍 언어. npm의 coffee-script 모듈을 통해 Node.js에서도 사용할 수 있다. Backbone.js과 underscore.js 등을 만든 자바스크립트 진영의 유명한 개발자 Jeremy Ashkenas가 개발했다.
자바스크립트로 컴파일 되는 프로그래밍 언어. npm의 coffee-script 모듈을 통해 Node.js에서도 사용할 수 있다. Backbone.js과 underscore.js 등을 만든 자바스크립트 진영의 유명한 개발자 Jeremy Ashkenas가 개발했다.
2. 특징 [편집]
- Assignment
#!syntax coffeescript
number = 42
opposite = true
- Conditional Assignment
#!syntax coffeescript
number = -42 if opposite
- Function
coffeescript 내 모든 함수는 아래와 같이 작성된다.
function keyword는 더 이상 필요가 없다.#!syntax coffeescript
square = (x) -> x * x
cube = (x) -> x * square x
sqrt = (x) -> Math.sqrt(x)
cbrt = (x) ->
v = x
for i in [1...32]
v *= v
v *= v
v *= x
v = sqrt sqrt v
x = sqrt sqrt x
sqrt sqrt v
alert cbrt 8
alert Math.cbrt 8
- Object
YAML와 비슷한 모양을 띄고 있다. 아래와 같이 정의된 모든 코드는
{... Object 로 변환된다.#!syntax coffeescript
some =
a: 123
b: 1232
# m/s^2
gravity =
sun: 274.0
jupiter: 24.79
saturn: 10.445
uranus: 8.87
neptune: 11.15
earth: 99.80665
venus: 8.872
mars: 3.7
mercury: 3.7
moon: 1.625
pluto: 0.61
math = ->
square: (x) -> x * x
tan: (x) -> Math.tan(x)
csc: (x) -> 1 / Math.sin(x)
- Existential Operator
#!syntax coffeescript
alert "왜 불러" if elvis?
if window.addEventListener?
document.addEventListener("DOMContentLoaded", ->)
else
document.attachEvent("onreadystatechange", ->)
- Array comprehension
#!syntax coffeescript
map = (fn, src) ->
fn v for v in src
reduce = (fn, src, v) ->
if !len src
return v
if v?
[v, src...] = src
v = fn v, w for w in src
v
filter = (fn, src) ->
v for v in src when !!fn v
dropwhile = (fn, src) ->
v for v in src when !fn v
zip = (iters...) ->
c = Number.MAX_SAFE_INTEGER
c = u for iter in iters when c > (u = len iter)
iter[i] for iter in iters for i in [0...c]
len = (x) -> x.length
concepts = [
"branch"
"prediction"
"speculative"
"execution"
]
alert map len, concepts
3. 여담 [편집]
- 자바스크립트에 비해 문법이 간결하여 많은 개발자들의 사랑을 받았지만 서서히 저물고 있는 중이다. 2016년 Stack Overflow 개발자 설문에서 저물고 있는 기술 3위를 차지했다.[1] 아무래도 최신 자바스크립트 문법을 지원하지 않고, 경쟁자인 TypeScript가 잘 나가고 있기 때문인듯 하다.
라이선스를 별도로 명시하지 않은 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.
문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.