JavaScript. Top level functions

Содержание

Слайд 2

Features Top level functions Функции могут возвращать функции, которые возвращают функции

Features

Top level functions
Функции могут возвращать функции, которые возвращают функции и т.д.
ECMAScript

5-6
У JS тоже есть версии
Наследование через прототипы.
Strings – во многом схожи с джавовскими. Можно использовать как одинарные кавычки, так и двойные.
Массивы – можно использовать сразу как стек
GIGO – Garbage In, Garbage Out
Слайд 3

Features Scope If блок не создает область видимости. Цикл не создает область видимости

Features

Scope
If блок не создает область видимости.
Цикл не создает область видимости

Слайд 4

Features Различные проперти глобального объекта – constructor, toString и т.п.

Features

Различные проперти глобального объекта – constructor, toString и т.п.

Слайд 5

Hoisting Загрузка функций и переменных в память происходит на первом этапе,

Hoisting
Загрузка функций и переменных в память происходит на первом этапе,
поэтому

можно использовать переменные до их объявления
Считается не очень хорошей практикой
Не работает при использовании strict mode
Слайд 6

Features IIFE – Immediately invoked function expression

Features

IIFE – Immediately invoked function expression

Слайд 7

Features Замыкания Использование «потерянного» контекста

Features

Замыкания
Использование
«потерянного»
контекста

Слайд 8

Features Еще один пример замыкания. Что будет на выходе? На выходе у нас:

Features

Еще один пример замыкания. Что будет на выходе?
На выходе у нас:


Слайд 9

Features Как сделать так, чтобы переменная i каждый раз была такой,

Features

Как сделать так, чтобы переменная i каждый раз была такой, какой

мы хотим ее видеть? Нужно поместить ее значение в новый контекст (выделено красным).
Слайд 10

Features Способы создания объекта Конструктороподобный Object.create(), ему даем (опционально) предка Просто пишем {} (Object literal notation)

Features

Способы создания объекта
Конструктороподобный
Object.create(), ему даем
(опционально) предка
Просто пишем {}
(Object

literal notation)
Слайд 11

Features «Асинхронная» работа – таймауты, коллбэки и т.п. Работа с event-queue Strict mode (с ES5)

Features

«Асинхронная» работа – таймауты, коллбэки и т.п.
Работа с event-queue
Strict mode (с

ES5)
Слайд 12

Features Функция – особый тип объекта, который имеет у себя «вызываемый»

Features

Функция – особый тип объекта, который имеет у себя «вызываемый» код
К

ней можно добавлять проперти и использовать как объект
Слайд 13

Features Псевдомассив arguments Дает текущие аргументы, даже если их больше чем

Features

Псевдомассив arguments
Дает текущие аргументы, даже если их больше чем заявлено
Если аргументов

меньше чем надо, то недостающие берутся как undefined
Слайд 14

Features Точки с запятой, особенности парсера – лучше ставить вручную Триксы

Features

Точки с запятой, особенности парсера – лучше ставить вручную
Триксы и приколы
void

0
default value
typeOf – самое веселое
Слайд 15

Features Вспомогательные методы – call, bind, apply Bind – создание нового

Features

Вспомогательные методы – call, bind, apply
Bind – создание нового объекта с

зафиксированным параметром (-ами)
apply и call – указать, на что будет указывать
this и вызвать с аргументами (массив)
call аналогично, только аргументы
через запятую
Слайд 16

Features JSON != object notation Для конвертации одного в другое есть

Features

JSON != object notation
Для конвертации одного в другое есть удобные функции

у объекта JSON :
stringify и parse