Вивчаємо coffeescript. Функції.

Вивчаємо CoffeeScript. Функції.

Всім привіт! У цій статті ми поговоримо про те, як створювати і використовувати функції в мові програмування coffeescript.

Отже, давайте напишемо функцію вітання спочатку на jаvascript, а потім на coffeescript, щоб ви відразу побачили різницю.

Відео: Вивчаємо PHP | Урок №22 - Строкові функції

var greet-
greet
=function(name){
return`Hello,`+ name +`!`-
} -

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

greet =(name)-gt;`Hello, # {name}!`

Як бачите, все значно простіше. Спочатку в круглих дужках йдуть аргументи, потім стрілочка, потім тіло функції. Якщо ж вам не потрібні аргументи, то ви взагалі можете не писати їх, і тоді функція буде виглядати ось так:

greet =-gt;`Hello, Sergey!`

У скомпільованому jаvascript ви можете побачити, що функція завжди повертає значення останнього виразу. Тобто в нашому випадку з привітанням вона буде виглядати так:

Відео: Курс по Coffeescript. Функції. 05

var greet-
greet
=function(name){
return`Hello,`+ name +`!`-
} -

Хоча ми ніде не писали ключового слова return в coffeescript! Давайте тепер змінимо функцію в coffeescript і подивимося, що вийде в скомпільованому jаvascript, щоб це все було наочніше

greet =(name)-gt;
do updateSomething
do changeSomething
`Hello, # {name}!`
do processSomething



В результаті отримаємо наступне:

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

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

greet =(name)-gt;
`Hello, # {name}!`
return

Природно, ви можете прописувати стандартні значення для аргументів точно так же, як і в jаvascript

greet =(name =`Sergey`)-gt;`Hello, # {name}!`


Тепер поговоримо про те, що робити, якщо наша функція повинна приймати невизначену кількість аргументів. В jаvascript для цього використовується об`єкт arguments, в coffeescript ж все набагато простіше.

normalize =(length, vectors...)-gt;`Something here ...`

Як ви можете бачити, все, що нам потрібно зробити, це просто додати три точки, що означатиме, що всі наступні аргументи після другого будуть записані в масив vectors.

Тепер про областях видимості: var писати не потрібно, всередині функції будь-яка змінна вважається локальної в тому випадку, якщо змінна з таким ім`ям не була оголошена раніше.

outer =10
func
=-gt;
outer
=10
inner
=10
return

В результаті отримаємо наступне:

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

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

Відео: Основи програмування. Вивчаємо анонімні функції і jаvascript

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

Тепер розглянемо анонімні самовизивающіеся функції. Як ви вже знаєте, всі функції в coffeescript анонімні і все, що вам потрібно зробити, щоб отримати анонімну самовизивающуюся функцію, як в мові jаvascript, це написати попереду ключове слово do

do-gt;do something

В результаті отримаємо наступне:

(function(){
return something() -
}) () -

Отже, на цьому все! Дякую за увагу!

Поділися в соціальних мережах:

Схожі
Вивчаємо coffeescript. Вступ.Вивчаємо coffeescript. Вступ.
Створення функцій в jаvascriptСтворення функцій в jаvascript
Стрілочні функції в es6.Стрілочні функції в es6.
Створення динамічної функції на phpСтворення динамічної функції на php
Відмінності між function declaration і function expression в jаvascript.Відмінності між function declaration і function expression в jаvascript.
Вивчаємо coffeescript. Типи даних.Вивчаємо coffeescript. Типи даних.
Вивчаємо sass. Міксини.Вивчаємо sass. Міксини.
Об`єкт object в jаvascriptОб`єкт object в jаvascript
Створення об`єктів в jаvascriptСтворення об`єктів в jаvascript
Вивчаємо coffeescript. Цикли.Вивчаємо coffeescript. Цикли.
» » Вивчаємо coffeescript. Функції.