Вы слышали про такой язык, как CoffeeScript, и хотите знать, что это за язык? CoffeeScript — это небольшой, но интересный язык программирования. Главная особенность этого языка в том, что он транслируется в JavaScript. То есть все, что пишется на CoffeeScript, сначала переводится в JavaScript, а потом попадает в интерпретатор.
Те, кто хоть немного интересуется программированием, знают, что JavaScript является одним из самых популярных современных языков, а также «королем» веб-разработки. Вот и получается, что CoffeeScript можно применять там же, где и JavaScript. Но на CoffeeScript синтаксис проще и легче, поэтому скрипты на CoffeeScript получаются компактнее, аккуратнее и понятнее.
CoffeeScript — что это
CoffeeScript перенял все лучшее от JavaScript, Python и Ruby, при этом большее он взял у JS, поэтому компилируется именно в этот язык. Разработчики CoffeeScript говорят о своем языке очень просто: «CoffeeScript — это простейший JavaScript». Они взяли и убрали из JavaScript все лишнее и опасное, подмешали все лучшее от Питона и Руби, и получился CoffeeScript. Поэтому об этом языке среди программистов можно услышать такие выражения:
CoffeeScript — это JavaScript без «скобочек»;
CoffeeScript — это Python без «двоеточий».
CoffeeScript поддерживает любую библиотеку JavaScript.
Особенности CoffeeScript
В CoffeeScript не нужно использовать «точку с запятой» для окончания выражения или строки, не нужно использовать «фигурные скобки» в функциях и др. То есть исчезли требования к символам, но увеличились требования к пробелам и табуляции. Например, вместо тех же «фигурных скобок» нужно использовать «пробелы», чтобы выделить функцию. А чтобы указать вложенность выражения, нужно использовать соответствующие отступы от края.
Сейчас приведем несколько примеров, чтобы вы увидели отличия между кодом в CoffeeScript и этим же кодом в JavaScript.
Как выглядят функции
Функция в CoffeeScript:
square = (у) -> у * у
cube = (у) -> square(у) * у
Такая же функция в JavaScript будет выглядеть так:
var cube, square;
square = function(у) {
return у * у;
};
cube = function(у) {
return square(у) * у;
};
Как выглядят строки
CoffeeScript поддерживает строки, как и любые другие языки. Строки в нем обозначаются одинарными или двойными кавычками.
Пример кода в CoffeeScript:
author = "И.Репин"
quote = "Автор этой картины -- #{ author }"
sentence = "#{ 22 / 7 } - это хорошее приближение к числу π"
Этот же код в JavaScript:
var author, quote, sentence;
author = "И.Репин";
quote = `Автор этой картины -- ${author}`;
sentence = `${22 / 7} — это хорошее приближение к числу π`;
Сразу бросается в глаза, что в CoffeeScript отпадает необходимость использовать ключевое слово «var».
В CoffeeScript поддерживается многострочный ввод текста; самое главное, чтобы между словами строк не было больше одного «пробела» и не было «обратного слеша».
Как обозначаются комментарии
В CoffeeScript комментарии обозначаются не так, как в JavaScript. Комментарии в КофеСкрипт выглядят следующим образом:
# Это комментарий в одну строку
### Это комментарий в несколько строк, где в начале и в конце комментария располагаются «три решетки» ###
В JavaScript комментарии выглядят так:
/ Это комментарий в одну строку
/* Это многострочный комментарий */
Комментарии, как мы знаем, игнорируются компиляторами и интерпретаторами. Но в случае с CoffeeScript комментарий также транслируется в JavaScript.
Циклы
Цикл в CoffeeScript выглядит следующим образом:
# Легкий перекус
eat = (food) -> "#{food} съедено."
eat food for food in ['тосты', 'сыр', 'вино']
# Сытный обед
courses = ['зелень', 'икра', 'трюфель', 'жаркое', 'торт']
menu = (i, dish) -> "Пункты меню #{i}: #{dish}"
menu i + 1, dish for dish, i in courses
# Здоровое питание
foods = ['брокколи', 'шпинат', 'шоколад']
eat food for food in foods when food isnt 'шоколад'
Как будет выглядеть то же самое, но в JavaScript:
// Легкий перекус
var courses, dish, eat, food, foods, i, j, k, l, len, len1, len2, menu, ref;
eat = function(food) {
return `${food} eaten.`;
};
ref = ['тосты', 'сыр', 'вино'];
for (j = 0, len = ref.length; j < len; j++) {
food = ref[j];
eat(food);
}
// Сытный обед
courses = ['зелень', 'икра', 'трюфель', 'жаркое', 'торт'];
menu = function(i, dish) {
return `Пункты меню ${i}: ${dish}`;
};
for (i = k = 0, len1 = courses.length; k < len1; i = ++k) {
dish = courses[i];
menu(i + 1, dish);
}
// Здоровое питание
foods = ['брокколи', 'шпинат', 'шоколад'];
for (l = 0, len2 = foods.length; l < len2; l++) {
food = foods[l];
if (food !== 'шоколад') {
eat(food);
}
}
На самом деле, особенностей у CoffeeScript очень много. Их сразу замечают те, кто уже практиковал программирование на JavaScript, C++, Python.
Заключение
Теперь вы знаете, что CoffeeScript — это не какой-либо фреймворк JavaScript, а полноценный язык программирования, хоть и небольшой. Главная его особенность — все, что будет написано на нем, будет «переведено» в JavaScript. Это дает возможность использовать всю мощь JS с легкостью и простотой, которую дает CoffeeScript. Тем, кого заинтересовал этот язык программирования, можно посоветовать официальный сайт-учебник CoffeeScript. Правда нужно отметить, что сайт на английском языке.
Другое