CoffeeScript

Материал из Википедии — свободной энциклопедии
Перейти к навигацииПерейти к поиску
Информация в этой статье или некоторых её разделахустарела.
Вы можете помочь проекту,обновив её и убрав после этого данный шаблон.(26 февраля 2025)
CoffeeScript
Изображение логотипа
Класс языка
Появился в13 декабря2009
АвторДжереми Ашкенас
Расширение файлов.coffee
Выпуск2.7.0[1]
Испытал влияниеJavaScript,Python,Ruby,Haskell,Erlang
Повлиял наMoonScript,LiveScript
Лицензиялицензия MIT[2]
Сайтcoffeescript.org
ОСкроссплатформенность

CoffeeScript — язык программирования,транспилируемый вJavaScript. CoffeeScript добавляетсинтаксический сахар в духеRuby,Python,Haskell иErlang для того, чтобы улучшить читаемость кода и уменьшить его размер.CoffeeScript позволяет писать более компактный код по сравнению сJavaScript[3].JavaScript-код, получаемый транспиляцией из CoffeeScript, полностью проходит проверкуJavaScript Lint.

Содержание

История

[править |править код]

Создателем языка являетсяДжереми Ашкенас.

Изначально компилятор был написан наRuby, но в версии 0.5, которая вышла21 февраля2010 года, компилятор был реализован на самом же CoffeeScript.

CoffeeScript был радушно воспринят вRuby-сообществе. Встроенная поддержка CoffeeScript была добавлена ввеб-фреймворкRuby on Rails с версии 3.1.

Преимущества использования

[править |править код]

Использование пробелов как разграничительных знаков(вместо скобок, точек с запятой и прочих), делает CoffeeScript кратким. По сравнению с JavaScript, строка для того же конкретного кода в CoffeeScript сокращается примерно до половины (примерно на 55 % меньше). Так же CoffeeScript позволяет избежать проблем с объявлением области действия в программе, поскольку в отличие от JavaScript использование ключевого слова var перед объявлением переменной не требуется. Помимо этого, в CoffeeScript есть ряд удобных функций, таких как осмысление массивов, псевдонимы прототипов и классы, которые ещё больше сокращают количество вводимых символов.

Недостатки использования

[править |править код]

Дополнительный этап компиляции между написанным кодом и кодом на JavaScript увеличивает общее время компиляции программы. CoffeeScript не является широко используемым, из-за чего сложнее искать источники информации по нему и кооперировать с другими разработчиками

Синтаксис

[править |править код]

Особенности

[править |править код]
  1. отсутствие точек с запятой (при этом, в самом JavaScript использование точек с запятой не обязательно, хоть и рекомендуется)
  2. фигурные скобки{} заменены табуляцией

Комментарии

[править |править код]

В CoffeeScript синтаксис для комментариев заимствован из Ruby, где каждый однострочный комментарий начинается со знака решетки#, а многострочные комментарии заключены между тремя символами решетки:

CoffeeScript:

# однострочный комментарий###    многострочный    комментарий###

#"ltr">

// однострочный комментарий/*  многострочный  комментарий*/

Пробелы

[править |править код]

Подобно языку Python, CoffeeScript используеттабуляции для обозначения блоков кода.

Переменные

[править |править код]

Неподдерживаемость CoffeeScript глобальных переменных предотвращает ошибки доступа, которые могли возникнуть в JavaScript при случайном объявлении глобальной переменной.

CoffeeScript:

myVariable="test"

#"ltr">

letmyVariable="test";

Функции

[править |править код]

CoffeeScript удаляет довольно многословный оператор функции и заменяет его тонкой стрелкой: ->. Функции могут быть однострочными или отступать на несколько строк. Последнее выражение в функции неявно возвращается.

CoffeeScript:

func=->"bar"func=-># An extra line"bar"

#"ltr">

functionfunc(){return"bar";}// другой вариант (с использованием стрелочной функции)letfunc=()=>"bar";

Аргументы функций

[править |править код]

Аргументы функции записываются в круглые скобки перед стрелкой. Есть поддержка аргументов по умолчанию.

CoffeeScript:

times=(a = 1, b) ->a*b

#"ltr">

functiontimes(a=1,b){returna*b;}// другой вариантlettimes=(a=1,b)=>a*b;