Вивчаємо 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() -
}) () -
Отже, на цьому все! Дякую за увагу!
- Що таке замикання в jаvascript.
- Nodejs. Як працюють function expression.
- Стрілочні функції в es6.
- Вивчаємо coffeescript. Цикли.
- Вивчаємо coffeescript. Умови.
- Нові функції в php 5.5.
- Створення функцій в jаvascript
- Вивчаємо coffeescript. Оператори.
- Вивчаємо sass. Міксини.
- Вивчаємо coffeescript. Вступ.
- Вивчаємо coffeescript. Класи.
- Створення функцій в php
- Аналог str_replace () в jаvascript
- Методи для роботи з масивами в es5.
- Об`єкт object в jаvascript
- Відмінності між function declaration і function expression в jаvascript.
- Анонімні, або лямбда-функції в php.
- Об`єкти, прототипи і конструктори в мові jаvascript.
- Вивчаємо coffeescript. Типи даних.
- Створення динамічної функції на php
- Створення об`єктів в jаvascript