<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Изучаем CoffeeScript. Функции.

Изучаем CoffeeScript. Функции.

Всем привет! В этой статье мы поговорим о том, как создавать и использовать функции в языке программирования coffeescript.

Итак, давайте напишем функцию приветствия сначала на javascript, а потом на coffeescript, чтобы вы сразу увидели разницу.

var greet;
greet = function(name) {
  return 'Hello, ' + name + '!';
};

Та же самая функция в coffeescript будет выглядеть вот так:

greet = (name) -> 'Hello, #{name}!'

Как видите, все значительно проще. Сначала в круглых скобках идут аргументы, затем стрелочка, затем тело функции. Если же вам не нужны аргументы, то вы вообще можете не писать их, и тогда функция будет выглядеть вот так:

greet = -> 'Hello, Sergey!'

В скомпилированном javascript вы можете увидеть, что функция всегда возвращает значение последнего выражения. Т.е. в нашем случае с приветствием она будет выглядеть так:

var greet;
greet = function(name) {
  return 'Hello, ' + name + '!';
};

Хотя мы нигде не писали ключевого слова return в coffeescript! Давайте теперь изменим функцию в coffeescript и посмотрим, что получится в скомпилированном javascript, чтобы это все было нагляднее

greet = (name) ->
  do updateSomething
  do changeSomething
  'Hello, #{name}!'
  do processSomething

В итоге получим следующее:

var greet;
greet = function(name) {
  do updateSomething();
  do changeSomething();
  'Hello, ' + name + '!';
  return processSomething();
};

На самом деле, это ни на что не влияет, вы можете просто игнорировать этот возврат, если он вам не нужен. Однако, если все-таки вам очень нужно убрать его из скомпилированного кода, то просто добавьте пустой return в конце.

greet = (name) ->
  'Hello, #{name}!'
  return

Естественно, вы можете прописывать стандартные значения для аргументов точно так же, как и в javascript

greet = (name = 'Sergey') -> 'Hello, #{name}!'

Теперь поговорим о том, что делать, если наша функция должна принимать неопределенное количество аргументов. В javascript для этого используется объект arguments, в coffeescript же все намного проще.

normalize = (length, vectors...) -> 'something here...'

Как вы можете видеть, все, что нам нужно сделать, это просто добавить три точки, что будет значить, что все следующие аргументы после второго будут записаны в массив vectors.

Теперь об областях видимости: var писать не нужно, внутри функции любая переменная считается локальной в том случае, если переменная с таким именем не была объявлена раньше.

outer = 10
func = ->
  outer = 10
  inner = 10
  return

В результате получим следующее:

var func, outer;
outer = 10;
func = function() {
  var inner;
  outer = 10;
  inner = 10;
};

Вызывать функции можно без круглых скобок. При вложенных вызовах параметры будут оборачиваться справа налево.

show() // show()
do show // show()
show update object // show(update(object))

Теперь рассмотрим анонимные самовызывающиеся функции. Как вы уже знаете, все функции в coffeescript анонимные и все, что вам нужно сделать, чтобы получить анонимную самовызывающуюся функцию, как в языке javascript, это написать впереди ключевое слово do

do -> do something

В результате получим следующее:

(function() {
  return something();
})();

Итак, на этом все! Спасибо за внимание!

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (1):

Gorbunko Gorbunko 26.06.2015 22:50:02

Доброго времени! Почему бы не записать по этому языку видеоурок. Или уже записывается? С уважением Gorbunko.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.