Статьи

Начиная с CoffeeScript

В прошлые выходные я ходил на конференцию по Java, и было несколько интересных тем. Один из выступавших говорил об Underscore, и все его примеры были написаны на CoffeeScript . Ранее я смотрел на CoffeeScript и возился с ним, но, увидев его в действии, я решил дать ему полный второй взгляд. Если вы работаете с JavaScript в браузере или Nodejs на сервере, то CoffeeScript будет работать для вас независимо, и с ним будет проще работать, чем с простым JavaScript.

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

Приложения CoffeeScript выполняются как приложения JavaScript. Источник CoffeeScript преобразуется в эквивалентный JavaScript перед выполнением. Так что, в конце концов, вы все еще просто выполняете JavaScript, но полностью используете все, что предлагает CoffeeScript.

Несколько интересных вещей:

  • Одна из вещей, которые я узнал, это то, что если вы пришли из мира Python, вы можете просто полюбить CoffeeScript с самого начала, потому что CoffeeScript избавляется от точек с запятой и фигурных скобок. Отступы имеют смысл (например, Python, Jade или HAML).
  • Операторы возврата не требуют ключевого слова возврата, поскольку последнее выражение — это то, что возвращается. Вы можете использовать оператор возврата в CoffeeScript, но это редко.
  • На конференции я обратил внимание на то, что когда вы создаете новые переменные в CoffeeScript, они определяются в локальной области, это означает, что невозможно случайно назначить переменную в глобальной области (таким образом, ее загрязнение — это не очень хорошая вещь ). Вы должны быть очень явными, чтобы поместить переменную CoffeeScript в глобальную область видимости.

Мне нравится тот факт, что вы можете использовать ключевое слово или вместо || а также ключевое слово и вместо &&.

Простой пример в CoffeeScript:

value1 = true
value2 = true
 
if value1 and value2
   alert true
else
   alert false

Тот же код, но в JavaScript:

value1 = true;
value2 = true;
 
if (value1 && value2) {
  alert(true);
} else {
  alert(false);
}

Я могу создать простую функцию в CoffeeScript, которая принимает один параметр и затем говорит привет:

sayHello = (name) -> alert "Hello #{name}"
 
sayHello 'Chad'

Тот же код, но в JavaScript:

var sayHello;
 
sayHello = function(name) {
  return alert("Hello " + name);
};
 
sayHello('Chad');

Примечание. Строки в двойных кавычках допускают интерполированные значения с использованием # {…}, а строки в одинарных кавычках являются литеральными.

Давайте создадим функцию, которая принимает два аргумента, один из которых будет иметь значение по умолчанию. Вот CoffeeScript:

sayHello = (name, greeting = "Hello") ->
  alert "#{greeting} #{name}!"
 
sayHello 'Chad', 'Bonjour'
sayHello 'Chad'

Я вызываю функцию дважды. В первый раз я приведу второй аргумент. В следующий раз, когда я это называю, я оставляю значение по умолчанию Таким образом, в первый раз Bonjour Chad и второй раз — Hello Chad .

Вот приведенный выше пример в JavaScript:

var sayHello;
 
sayHello = function(name, greeting) {
  if (greeting == null) {
    greeting = "Hello";
  }
  alert(greeting + " " + name + "!");
};
 
sayHello('Chad', 'Bonjour');
sayHello('Chad');

Как насчет того, чтобы попробовать функцию автоматического возврата CoffeeScript:

positiveOrNegative = (value) ->
  if value > 0
    "Positive"
  else
    "Negative"
 
alert positiveOrNegative 123
alert positiveOrNegative -123

Вот JavaScript:

var positiveOrNegative;
 
positiveOrNegative = function(value) {
  if (value > 0) {
    return "Positive";
  } else {
    return "Negative";
  }
};
 
alert(positiveOrNegative(123));
alert(positiveOrNegative(-123));

Продолжая …

Вы можете найти хорошее руководство здесь, а также интересный способ интерактивного тестирования вашего CoffeeScript здесь (нажмите на вкладку Try CoffeeScript ). Интерактивный инструмент создаст соответствующий JavaScript для вас при вводе.

Уже есть пара опубликованных книг:


В этом году появятся новые книги.