문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. http://coffeescript.org/documentation/images/logo.png [include(틀:다른 뜻1, other1=커피, rd1=커피)] {{{#!html <!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%">alert <span style="background-color: #fff0f0">"Hello, World!"</span> <span style="color: #888888"># alert 방식</span> <span style="color: #007020">document</span>.write <span style="background-color: #fff0f0">"Hello, world!"</span> <span style="color: #888888"># 문서에 쓰는 방식.</span> console.log <span style="background-color: #fff0f0">"Hello, world!"</span> <span style="color: #888888"># 콘솔 방식</span> </pre></div> }}} == 개요 == [[http://coffeescript.org/|공식 페이지]] [[자바스크립트]]로 컴파일 되는 프로그래밍 언어. [[npm]]의 coffee-script 모듈을 통해 [[node.js]]에서도 사용할 수 있다. Backbone.js과 [[언더스코어|underscore.js]] 등을 만든 자바스크립트 진영의 유명한 개발자 Jeremy Ashkenas가 개발했다. == 문법 == * Assignment[* 변수(Variable) 용어를 사용하지 않습니다.] {{{#!html <!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #996633">number = </span><span style="color: #0000DD; font-weight: bold">42</span> <span style="color: #996633">opposite = </span><span style="color: #008800; font-weight: bold">true</span> </pre></div> }}} * Conditional Assignment {{{#!html <!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #996633">number = </span><span style="color: #333333">-</span><span style="color: #0000DD; font-weight: bold">42</span> <span style="color: #008800; font-weight: bold">if</span> opposite </pre></div> }}} * Function[* 커피스크립트에서 모든 함수는 이렇게 정의됩니다.] {{{#!html <!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #996633">square = </span><span style="color: #0066BB; font-weight: bold">(x) -></span> x <span style="color: #333333">*</span> x </pre></div> }}} * YAML처럼 생긴 객체 리터럴을 지원한다. {{{#!html <!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #996633">math =</span> <span style="color: #996633">root: </span> <span style="color: #007020">Math</span>.sqrt <span style="color: #996633">square: </span>square <span style="color: #996633">cube: </span> <span style="color: #0066BB; font-weight: bold">(x) -></span> x <span style="color: #333333">*</span> square x </pre></div> }}} * Existential Operator[* null, undefined 체크와 함수 실행을 한 줄로 할 수 있다!] {{{#!html <!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%">alert <span style="background-color: #fff0f0">"알았다!"</span> <span style="color: #008800; font-weight: bold">if</span> elvis<span style="color: #333333">?</span> </pre></div> }}} * List Comprehension {{{#!html <!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #996633">cubes = </span>(math.cube num <span style="color: #008800; font-weight: bold">for</span> num <span style="color: #008800; font-weight: bold">in</span> list) </pre></div> }}} == 여담 == * [[Node.js]]에서 은근히 많이 쓰인다. 이유는 아무래도 [[npm]]의 커피스크립트 모듈 때문인듯.. * 자바스크립트에 비해 문법이 간결하여 많은 개발자들의 사랑을 받았지만 서서히 저물고있는 중이다. [[http://stackoverflow.com/research/developer-survey-2016#technology-trending-tech-on-stack-overflo|2016년 Stack Overflow 개발자 설문]]에서 저물고 있는 기술 3위를 차지했다.[* 참고로 1위는 Windows Phone(...) 2위는 [[하스켈]].] 아무래도 최신 자바스크립트 문법을 지원하지 않고, 경쟁자인 TypeScript가 잘 나가고 있기 때문인듯 하다. 이 문서에서 사용한 틀: 틀:다른 뜻1 (원본 보기) CoffeeScript 문서로 돌아갑니다.