Функции, объекты, инфраструктура браузера в JavaScript презентация

Содержание

Слайд 2

Функция – фрагмент кода, у которого есть имя, который можно вызывать из любого

места в программе. Функции уменьшают количество кода в программе, код функции пишется один раз, используется многократно.

Функции

Слайд 3

Функции в JavaScript

Функции в JavaScript еще один из базовых типов, функции можно присваивать

переменным, а можно вызывать и получать результат их работы.

Слайд 4

Функции в JavaScript

Функции в JavaScript еще один из базовых типов, функции можно присваивать

переменным, а можно вызывать и получать результат их работы. Запись без круглых скобок «скопирует» функцию в другую переменную, запись с круглыми скобками -

Слайд 5

Основной отличительный знак функций – круглые скобки: alert() Круглые скобки делают сразу два

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

alert(“Сообщение на экран”);

Имя функции которую вызываем (выполняем).

Скобки, признак того, что мы именно вызываем функцию.

Параметры функции (данные которые функция обрабатывает).

Функции

Слайд 6

Параметры функции (аргументы) – такие себе «переменные» которые передаются функции при каждом вызове,

и могут влиять на результат её работы.

Возвращаемое значение – возможность функции вернуть результат своей работы, при необходимости. Возврат делается оператором return.

Параметры функции и возвращаемое значение

Слайд 7

Не обязательно передавать функции все параметры которые предусмотрены её заголовком, НО в таком

случае

Параметры функции

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

Слайд 8

Параметры функции по умолчанию
ECMAScript-2015

Можно указывать параметры по умолчанию через равенство. Параметр по умолчанию

используется при отсутствующем аргументе или равном undefined

Слайд 9

Возвращаемое значение

Возвращаемое значение возможность функции вернуть результаты своей работы, при помощи оператора return,

функция может не возвращать результат.

Слайд 10

Сокращенный синтаксис функций
ECMAScript-2015

Сокращенный вариант записи функций через оператор => позволяет сократить объём кода

затрачиваемого на объявление функции.

Слайд 11

Практическая ценность функций

Уменьшаем дублирование (повторение) кода;
Проще вносить изменения;
Абстрагирование от деталей;

Слайд 12

Переменные в теле функции, локальные переменные, область видимости

Переменные объявленные в теле функции называют

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

Слайд 13

Глобальные переменные

Глобальные переменные – те который объявлены вне тела функции, функции имеют доступ

к ним, и могут их необратимо изменять.

Слайд 14

Сокрытие глобальных переменных

Повторное объявление глобальной переменной в теле функции сокрывает глобальную переменную, и

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

Слайд 15

Применение функций. Таймеры

Пример: http://js.courses.dp.ua/express/02/timers_example.html

Слайд 16

Список аргументов переменной длинны

Псевдомассив arguments – хранит в себе все аргументы (параметры) которые,

при вызове, переданы функции, и их порядковые номера. Все параметры которые предусмотрены в заголовке функции, также хранятся в arguments. Функции объявленные через оператор => не имеют arguments.

Слайд 17

Список аргументов переменной длинны

Псевдомассив arguments – хранит в себе все аргументы (параметры) которые,

при вызове, переданы функции, и их порядковые номера.

Слайд 18

Оператор «…» и arguments ECMAScript-2015

В переменную …params попадут все параметры которые не поместились

в именованные параметры функции. В отличии от arguments куда помещаются все параметры функции.

Слайд 19

Самовызывающаяся функция

Самовызывающаяся функция – удобный механизм выполнить какие-либо действия автоматически, не создавая переменных

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

Слайд 20

Функции и события

На базе функций работает система событий (оповещения о выполнении пользователем тех

или иных действий)

Слайд 21

Функции и события

На базе функций работает система событий (оповещения о выполнении пользователем тех

или иных действий)

Слайд 22

Объекты / Objects

материал: металл

циферблат: механика

вес: 300 грамм

форма: шаровидная

цвет: оранжевый

сахар: 15%

сорт: «Дэнси»

узнать время()

звонить()

пахнуть()

почистить()

выжать

сок()

установить время()

<< Действия()/Методы() >>

<< Свойства / Аттрибуты >>
параметры

Слайд 23

Объекты / Objects

Объект в программировании — некоторая сущность, обладающая определённым состоянием и

поведением, имеющая заданные значения свойств (параметров, атрибутов) и операций над ними (функций, методов).

Слайд 24

Объекты / Objects

Объект в JavaScript представляет собой ассоциативный массив (верно и обратное

утверждение) содержащий поля (свойства, элементы, такие себе переменные) с данными, и методы (функции) их обрабатывающие.

Слайд 25

Ключевое слово this

Ключевое слово this – ссылка на сам объект. Другими словами this

указывает на тот ассоциативный массив (объект) которому принадлежит функция, в которой this используется встречается.

Слайд 26

Объекты / Objects


Объект может состоять из множества других объектов. Абстракция. Принцип черного

ящика.

Слайд 27

Объекты могут состоять из других объектов

Объекты могут состоять из множества других объектов. Обращаться

к ним не составляет труда. Оператор точка «.» разделяет сложенный объект и объект «контейнер». Такое разделение называют – цепочкой вызова, длинна такой цепочки ограничена только тем сколько объектов участвуют в «матрёшке».

Слайд 28

Объекты

Вложенность объектов позволяет писать простой и элегантный код.

Слайд 29

Объекты, как и массивы – динамическая структура данных

?!?

Объекты

Слайд 30

Объекты, как и массивы – динамическая структура данных

?!?

Объекты

Слайд 31

object - ссылочная структура данных

?!?

?!?

Объекты

Слайд 32

object и null

null – “заглушка” говорящая, что данная ссылка не ссылается ни на

одни объект.

Объекты

Слайд 33

object - ссылочная структура данных

name: Ivan,
age: 33,

ob

ob2

Объекты

Слайд 34

Функция-конструктор - позволяет создавать много однотипных объектов. Для этого она используется вместе с

оператором new.

Функция-Конструктор

Слайд 35

Функция-конструктор - позволяет создавать много однотипных объектов. Конструктор может (и должен) иметь параметры

Функция-Конструктор

Слайд 36

Прототип – объект родитель, дополняет своими свойствами дочерний объект.

Прототипы

Для получения и установки прототипа

существует более цивилизованный поход (чем обращение к свойству __proto__ ) – использование методов Object.getPrototypeOf(obj) для получения прототипа, и Object.setPrototypeOf(obj, newProto) для его установки (появился в ES2015).

Слайд 37

Прототип – объект родитель, дополняет своими свойствами дочерний объект.

Прототипы

Слайд 38

Прототип – объект родитель, дополняет своими свойствами дочерний объект.

Доступ к свойствам прототипа

?!?

Слайд 39

Оператор in и метод hasOwnProperty()

Оператор in проверяет наличие свойства в объекте (и его

прототипе). Метод .hasOwnProperty() проверяет наличие свойства только в самом объекте (не заглядывая в прототип).

Слайд 40

Классы в ECMAScript-2015

В ES2015 появились классы, однако они лишь обёртка над идеей прототипов

и функций-конструкторов.

Слайд 41

Применение прототипов

Наличие общего прототипа у группы объектов позволяет модифицировав его – автоматически модифицировать

все его «объекты-наследники».

Слайд 42

Применение прототипов

Наличие общего прототипа у группы объектов позволяет модифицировав его – автоматически модифицировать

все его «объекты-наследники».

Пример: http://js.courses.dp.ua/express/02/proto_example.html

Слайд 43

О режиме совместимости

Слайд 44

Директива “use strict”

Директива “use strict” говорит браузеру, что следует относиться к JavaScript коду

строго по стандарту ECMAScript 5. Все «попустительства» поддерживаемые для совместимости со старыми стандартами перестают действовать.

Что перестанет работать: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Strict_mode

Слайд 45

Инфраструктура браузера

Слайд 46

JavaScript в HTML

Интеграция кода непосредственно в HTML.

Слайд 47

JavaScript в HTML

Блоки кода


Атрибут defer откладывает выполнение скрипта до тех пор, пока вся страница не

будет загружена полностью. Аналог подписки на событие window.onload. Работает только для внешних файлов (т.е. когда есть атрибут src).

Атрибута async указывает, что указанный в атрибуте src файл будет выполняться без ожидания загрузки и отображения веб-страницы. В то же время и страница не ожидает результата выполнения скрипта, а продолжает загружаться как обычно. Т.е. браузер продолжает грузить страницу дальше, не дожидаясь полной загрузки файла со скриптами. Появился в HTML5.

Слайд 51

JavaScript в HTML

Блоки кода в отдельном файле.

Раньше:

HTML 5:

Слайд 52

Объект Window

Браузер добавляет в JavaScript всего один объект – window. Но этот объект

содержит все необходимые инструменты для манипуляции HTML-документом.

Слайд 53

Объект Window

Объект window можно использовать неявно, т.е. опускать его имя при написании кода.

А все переменные которые создаются в коде – автоматически становиться свойствами и методами window.

.setInterval();
.setTimeOut();
.alert();
.prompt();
.confirm();

Известные методы window

Слайд 54

Объект Window

Все переменные которые создаются в коде – автоматически становиться свойствами и методами

window.

http://js.courses.dp.ua/express/02/window_ex1.html

Слайд 55

Объект Window

window.location – свойство определяющее какую страницу содержит окно браузера.

window.location ===

window.document.location

Свойство: window.location

Слайд 56

Объект Window

Свойство: window.location

Слайд 57

Объект Window

window.screen – информация об экране, размерах, ориентации и т.д.

Свойство: window.screen

Слайд 58

Объект Window

window.navigator – информация о браузере.

Свойство: window.navigator

Слайд 59

window.document

window.document – хранилище HTML-документа.

Слайд 60

HTML-документ

Слайд 61

HTML-документ

Древовидная структура HTML-документа

Слайд 62

HTML-документ

Древовидная структура HTML-документа

Слайд 63

Древовидная структура HTML-документа

В JavaScript каждый элемент дерева (узел, тег, node) представлен объектом.

У каждого

элемента есть один родительский элемент, и множество дочерних элементов (от 0 до ∞).

Слайд 64

Свойства элементов HTML-документа

Свойство .parentNode – ссылка на родительский элемент.

Свойство .childNodes – псевдомассив содержащий

ссылки на дочерние элементы.

Слайд 65

window.document – корень дерева документа

window.document.childNodes – массив с тегами верхнего уровня (как правило

тег html и doctype).

http://js.courses.dp.ua/express/02/window_ex3.html

Слайд 66

window.document – корень дерева документа

Слайд 67

Типы Node (элементов)

Свойство nodeType у элементов – определяет тип ноды (узла, node):

Типы

узлов: http://www.w3schools.com/jsref/prop_node_nodetype.asp

Слайд 68

Элемент, его предки и потомки

DOCUMENT >> HTML >> BODY >> P

Слайд 69

Элемент, его предки и потомки

DOCUMENT >> HTML >> BODY >> P

Слайд 70

Элемент, его предки и потомки

I << P << BODY << HTML

Слайд 71

Элемент, его предки и потомки

I << P << BODY << HTML

Слайд 72

Атрибуты тоже входят в дерево

Свойство .attributes содержит перечень атрибутов элементов

http://js.courses.dp.ua/express/02/window_ex4.html

Слайд 73

Атрибуты тоже входят в дерево

Свойство .attributes содержит перечень атрибутов элементов

Слайд 74

Свойства элементов можно менять, динамически

У каждого элемента-атрибута есть множество свойств, которые можно изменять,

и это сразу же отразиться на документе.

Слайд 75

Свойства элементов можно менять, динамически

У каждого элемента-атрибута есть множество свойств, которые можно изменять,

и это сразу же отразиться на документе.

Слайд 76

Свойство .innerHTML – содержимое тега

Изменение свойства innerHTML – автоматически влечёт перерасчёт дерева

документа

Слайд 77

Свойство .innerHTML – содержимое тега

Изменение свойства innerHTML – автоматически влечёт перерасчёт дерева

документа

Слайд 78

Удаление элементов из дерева документа

Удаление элемента из дерева влёчет, то что он исчезнет

при отрисовке документа.

Слайд 79

Удаление элементов из дерева документа

Удаление элемента из дерева влёчет, то что он исчезнет

при отрисовке документа.

Слайд 80

Удаление элементов из дерева документа не влечёт уничтожение объекта элемента

Удаление элемента из дерева

влёчет, то что он исчезнет при отрисовке документа. Но сам объект не уничтожается, и его возможно использовать в дальнейшем.

Слайд 81

Удаление элементов из дерева документа не влечёт уничтожение объекта элемента

Удаление элемента из дерева

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

Слайд 82

.parentNode

.childNodes

Element (Node, узел)

DOM – Document Object Model

(объектная модель документа)

Слайд 83

Задача JavaScript – изменение HTML-документа

Добавление нового элемента:
Создать новый элемент и присоединить его, в

качестве дочернего, к одному из существующих элементов;

2. Изменение элемента:
Изменение свойств элемента (в т.ч. содержимого);
Изменение его позиции в дереве документа;

3. Удаление элемента (из дерева документа).

Чтобы с тегом что-то сделать нужно его, для начала найти!

Слайд 84

Домашнее задание

Узнать о следующих свойствах:

.firstChild;
.lastChild;
.nextSibling;
.previousSibling;

https://developer.mozilla.org/ru/docs/Web/JavaScript

Слайд 85

https://www.gitbook.com/download/pdf/book/karmazzin/eloquentjavascript_ru

Слайд 86

Основы программирования

http://courses.prometheus.org.ua/courses/Prometheus/CS50/2016_T1/about

Слайд 87

Домашнее задание

О налогах в США http://www.tax-rates.org/federalincometax

Задание: написать скрипт, который будет запрашивать сумму годового

дохода человека, и рассчитывать сумму федерального налога (для США), которую человек должен оплатить (за основу взять ставки для лиц не состоящих в браке – single).

Слайд 88

Домашнее задание: задача от «Apple»

Массив содержит котировки стоимость акций Apple (в течении одного

дня торгов). Вы можете купить одну акцию и потом продать её. Ваша задача найти самый удачный момент для покупки и продажи акции (покупка разуметься должна быть до продажи), так чтобы ваша прибыль от этого действия была максимально возможной. В результате работы скрипта необходимо вывести рассчитанную прибыль, а также номера цен (в массиве) по которым бы производилась покупка и продажа.
Имя файла: Функции,-объекты,-инфраструктура-браузера-в-JavaScript.pptx
Количество просмотров: 88
Количество скачиваний: 0