Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

CoffeeScript

Матеріал з Вікіпедії — вільної енциклопедії.
CoffeeScript
Парадигмаоб'єктно-орієнтована,
імперативна,
функціональна,
аспектно-орієнтована,
прототипна мова
Дата появи2009
ТворціДжеремі Ашкеназ (англ.Jeremy Ashkenas)
РозробникДжеремі Ашкеназ Редагувати інформацію у Вікіданих
Система типізаціїдинамічна типізація[d] Редагувати інформацію у Вікіданих
Під впливом відJavaScript,Python,Ruby,Haskell
Мова реалізаціїCoffeeScript[1][2] Редагувати інформацію у Вікіданих
Операційна системакросплатформність Редагувати інформацію у Вікіданих
ЛіцензіяMIT[3] Редагувати інформацію у Вікіданих
Звичайні розширення файлів.coffee Редагувати інформацію у Вікіданих
Репозиторій вихідного кодуgithub.com/jashkenas/coffeescript Редагувати інформацію у Вікіданих
Вебсайтcoffeescript.org

CoffeeScript ([’kɔ:fɪ skrɪpt]; кофі скрипт) — мова програмування, що транслюється вJavaScript. CoffeeScript додаєсинтаксичний цукор у дусіRuby,Python іHaskell для того, щоб покращити читання коду і зменшити його розмір. В середньому для виконання однакових дій на CoffeeScript потрібно в два рази менше рядків, ніж JavaScript.

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=2male=truename="Христина"

#"ltr">

varage=2,male=true,name="Христина";

Функції

[ред. |ред. код]

CoffeeScript:

say=(speech)->alertspeechsay("Привіт всім!")

#"ltr">

varsay=function(speech){alert(speech);};say("Привіт всім!");

Класи і об'єкти

[ред. |ред. код]

CoffeeScript:

classHumanconstructor:(@name) ->classBabyextendsHumansay:(msg) ->alert"#{@name} говорить '#{msg}'"sayHi:->@say('Уууу!')matt=newBaby("Марія")matt.sayHi()

Аналог на JavaScript (саме аналог, а не результат компіляції):

functionHuman(name){this.name=name;}functionBaby(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;varmatt=newBaby("Олена");matt.sayHi();

Примітка: в JavaScript при роботі з «класами» (конструктор + прототипи + функції для наслідування і змішування) часто використовують обгортки (MooTools,AtomJS та інші).Аналогія на JavaScript з класовою обгорткою AtomJS:

varHuman=Class({initialize:function(name){this.name=name;}});varBaby=Class({Extends:Human,say:function(msg){alert(this.name+' говорить '+msg);},sayHi:function(){this.say('Уууу!');}});varmatt=newBaby("Олена");matt.sayHi();

Приклад класу CoffeeScript з різними видами властивостей.

classTestsay=(msg) ->alertmsg# приватний метод@echo=(msg) ->console.logmsg# статичний метод, записаний в TestsetHi:(msg) -># динамічний метод, записаний в Test.prototype@hi=->msg# динамічний метод, записаний в екземпляр Test

Цікаві факти

[ред. |ред. код]

Так як компілятор CoffeeScript написаний на самому CoffeeScript, ви можете випробувати його онлайн на офіційному сайті, при цьому, на відміну відTry Ruby[Архівовано 23 липня 2012 уWayback Machine.], асинхронних запитів відбуватися не буде, оскільки код компілюється безпосередньо в вашому браузері.

Див. також

[ред. |ред. код]

Примітки

[ред. |ред. код]
  1. The coffeescript Open Source Project on Open Hub: Languages Page — 2006.
  2. https://github.com/EvanLi/Github-Ranking/blob/master/Data/github-ranking-2025-07-06.csv — 2025.
  3. The coffeescript Open Source Project on Open Hub: Licenses Page — 2006.

Література

[ред. |ред. код]

Посилання

[ред. |ред. код]
Рівень
Низькорівневі
Високорівневі
Загального
призначення
Серверні
Запитів до баз
даних[суперечливо 1]
Розмітки тавекторної
графіки
[суперечливо 1]
Синхронні
Символьних та
чисельних обчислень
Квантових обчислень
Логічні
Академічні
Езотеричні
  1. абНемає загальноприйнятого рішення, чи вважати усі ці мови саме мовами програмування
Аналіз коду
Компілятори
Концепти
Дебагери
Генератори документації
Редактори коду (порівняння)
Фреймворки
Пов'язанітехнології
Менеджери пакетів
Серверний JS
Тестування
Персоналії
Отримано зhttps://uk.wikipedia.org/w/index.php?title=CoffeeScript&oldid=41436707
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2026 Movatter.jp