CoffeeScript ([’kɔ:fɪ skrɪpt]; кофі скрипт) — мова програмування, що транслюється в JavaScript. CoffeeScript додає синтаксичний цукор у дусі Ruby, Python і Haskell для того, щоб покращити читання коду і зменшити його розмір. В середньому для виконання однакових дій на CoffeeScript потрібно в два рази менше рядків, ніж JavaScript.
CoffeeScript | |
---|---|
Парадигма | об'єктно-орієнтована, імперативна, функціональна, аспектно-орієнтована, прототипна мова |
Дата появи | 2009 |
Творці | Джеремі Ашкеназ (англ. Jeremy Ashkenas) |
Розробник | Джеремі Ашкеназ |
Останній реліз | |
Система типізації | динамічна типізація[d] |
Під впливом від | JavaScript, Python, Ruby, Haskell |
Мова реалізації | CoffeeScript[1] |
Операційна система | кросплатформова програма |
Ліцензія | MIT[2] |
Звичайні розширення файлів | .coffee |
Репозиторій вихідного коду | github.com/jashkenas/coffeescript |
Вебсайт | coffeescript.org |
JavaScript код, який компілюється з CoffeeScript повністю проходить перевірку JavaScript Lint [ 4 липня 2012 у Wayback Machine.].
Історія
Спочатку компілятор був написаний на Ruby, але у версії 0.5, яка вийшла 21 лютого 2010, компілятор був реалізований на CoffeeScript. CoffeeScript був радо прийнятий в Ruby спільноті. В вебфреймворку Ruby on Rails версії 3.1, CoffeeScript замінив JavaScript.
Приклади
Змінні
CoffeeScript:
age = 2 male = true name = "Христина"
JavaScript:
var age = 2, male = true, name = "Христина";
Функції
CoffeeScript:
say = (speech) -> alert speech say("Привіт всім!")
JavaScript:
var say = function(speech) { alert(speech); }; say("Привіт всім!");
Класи і об'єкти
CoffeeScript:
class Human constructor : (@name) -> class Baby extends Human say : (msg) -> alert "#{@name} говорить '#{msg}'" sayHi : -> @say('Уууу!') matt = new Baby("Марія") matt.sayHi()
Аналог на JavaScript (саме аналог, а не результат компіляції):
function Human(name) { this.name = name; } function Baby(name) { Human.call(this, name); } Baby.prototype = Object.create(Human.prototype); Baby.prototype.say = function(msg) { alert(this.name + ' говорить ' + msg); }; Baby.prototype.sayHi = function() { this.say('Уууу!'); }; Baby.prototype.constructor = Baby; var matt = new Baby("Олена"); matt.sayHi();
Примітка: в JavaScript при роботі з «класами» (конструктор + прототипи + функції для наслідування і змішування) часто використовують обгортки (MooTools, та інші). Аналогія на JavaScript з класовою обгорткою AtomJS:
var Human = Class({ initialize : function(name) { this.name = name; } }); var Baby = Class({ Extends : Human, say : function(msg) { alert(this.name + ' говорить ' + msg); }, sayHi : function() { this.say('Уууу!'); } }); var matt = new Baby("Олена"); matt.sayHi();
Приклад класу CoffeeScript з різними видами властивостей.
class Test say = (msg) -> alert msg # приватний метод @echo = (msg) -> console.log msg # статичний метод, записаний в Test setHi : (msg) -> # динамічний метод, записаний в Test.prototype @hi = -> msg # динамічний метод, записаний в екземпляр Test
Цікаві факти
Так як компілятор CoffeeScript написаний на самому CoffeeScript, ви можете випробувати його онлайн на офіційному сайті, при цьому, на відміну від Try Ruby [ 23 липня 2012 у Wayback Machine.], асинхронних запитів відбуватися не буде, оскільки код компілюється безпосередньо в вашому браузері.
Див. також
Примітки
- The coffeescript Open Source Project on Open Hub: Languages Page — 2006.
- The coffeescript Open Source Project on Open Hub: Licenses Page — 2006.
Література
- CoffeeScript Cookbook, збірник рецептів CoffeeScript від спільноти.
- The Little Book on CoffeeScript [ 2 січня 2012 у Wayback Machine.], введення в програмування на CoffeeScript.
- Smooth CoffeeScript [ 1 травня 2012 у Wayback Machine.], вільна електронна книга про CoffeeScript. Доступна у двох варіантах з вихідним кодом прикладів.
Посилання
- Офіційний сайт CoffeeScript. [ 9 червня 2017 у Wayback Machine.]
- Репозиторій CoffeeScript [ 28 серпня 2013 у Wayback Machine.] на GitHub.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
CoffeeScript kɔ fɪ skrɪpt kofi skript mova programuvannya sho translyuyetsya v JavaScript CoffeeScript dodaye sintaksichnij cukor u dusi Ruby Python i Haskell dlya togo shob pokrashiti chitannya kodu i zmenshiti jogo rozmir V serednomu dlya vikonannya odnakovih dij na CoffeeScript potribno v dva razi menshe ryadkiv nizh JavaScript CoffeeScriptParadigmaob yektno oriyentovana imperativna funkcionalna aspektno oriyentovana prototipna movaData poyavi2009TvorciDzheremi Ashkenaz angl Jeremy Ashkenas RozrobnikDzheremi AshkenazOstannij relizSistema tipizaciyidinamichna tipizaciya d Pid vplivom vidJavaScript Python Ruby HaskellMova realizaciyiCoffeeScript 1 Operacijna sistemakrosplatformova programaLicenziyaMIT 2 Zvichajni rozshirennya fajliv coffeeRepozitorij vihidnogo kodugithub com jashkenas coffeescriptVebsajtcoffeescript org JavaScript kod yakij kompilyuyetsya z CoffeeScript povnistyu prohodit perevirku JavaScript Lint 4 lipnya 2012 u Wayback Machine IstoriyaSpochatku kompilyator buv napisanij na Ruby ale u versiyi 0 5 yaka vijshla 21 lyutogo 2010 kompilyator buv realizovanij na CoffeeScript CoffeeScript buv rado prijnyatij v Ruby spilnoti V vebfrejmvorku Ruby on Rails versiyi 3 1 CoffeeScript zaminiv JavaScript PrikladiZminni CoffeeScript age 2 male true name Hristina JavaScript var age 2 male true name Hristina Funkciyi CoffeeScript say speech gt alert speech say Privit vsim JavaScript var say function speech alert speech say Privit vsim Klasi i ob yekti CoffeeScript class Human constructor name gt class Baby extends Human say msg gt alert name govorit msg sayHi gt say Uuuu matt new Baby Mariya matt sayHi Analog na JavaScript same analog a ne rezultat kompilyaciyi function Human name this name name function Baby name Human call this name Baby prototype Object create Human prototype Baby prototype say function msg alert this name govorit msg Baby prototype sayHi function this say Uuuu Baby prototype constructor Baby var matt new Baby Olena matt sayHi Primitka v JavaScript pri roboti z klasami konstruktor prototipi funkciyi dlya nasliduvannya i zmishuvannya chasto vikoristovuyut obgortki MooTools ta inshi Analogiya na JavaScript z klasovoyu obgortkoyu AtomJS var Human Class initialize function name this name name var Baby Class Extends Human say function msg alert this name govorit msg sayHi function this say Uuuu var matt new Baby Olena matt sayHi Priklad klasu CoffeeScript z riznimi vidami vlastivostej class Test say msg gt alert msg privatnij metod echo msg gt console log msg statichnij metod zapisanij v Test setHi msg gt dinamichnij metod zapisanij v Test prototype hi gt msg dinamichnij metod zapisanij v ekzemplyar TestCikavi faktiTak yak kompilyator CoffeeScript napisanij na samomu CoffeeScript vi mozhete viprobuvati jogo onlajn na oficijnomu sajti pri comu na vidminu vid Try Ruby 23 lipnya 2012 u Wayback Machine asinhronnih zapitiv vidbuvatisya ne bude oskilki kod kompilyuyetsya bezposeredno v vashomu brauzeri Div takozhDart HaXe JavaScriptPrimitkiThe coffeescript Open Source Project on Open Hub Languages Page 2006 d Track Q124688 The coffeescript Open Source Project on Open Hub Licenses Page 2006 d Track Q124688LiteraturaCoffeeScript Cookbook zbirnik receptiv CoffeeScript vid spilnoti The Little Book on CoffeeScript 2 sichnya 2012 u Wayback Machine vvedennya v programuvannya na CoffeeScript Smooth CoffeeScript 1 travnya 2012 u Wayback Machine vilna elektronna kniga pro CoffeeScript Dostupna u dvoh variantah z vihidnim kodom prikladiv PosilannyaOficijnij sajt CoffeeScript 9 chervnya 2017 u Wayback Machine Repozitorij CoffeeScript 28 serpnya 2013 u Wayback Machine na GitHub