🗊Презентация Основы JavaScript

Нажмите для полного просмотра!
/ 249

Содержание

Вы можете ознакомиться и скачать презентацию на тему Основы JavaScript. Доклад-сообщение содержит 249 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Основы JavaScript
Принципы выполнения программ. Основные структуры языка. Преобразование типов данных. Функции, отложенное выполнение функций. Принципы работы с массивами, объектами, this. Основы работы с DOM. Обработка событий. Основы XMLHttpRequest.
Описание слайда:
Основы JavaScript Принципы выполнения программ. Основные структуры языка. Преобразование типов данных. Функции, отложенное выполнение функций. Принципы работы с массивами, объектами, this. Основы работы с DOM. Обработка событий. Основы XMLHttpRequest.

Слайд 2





Содержание
Общие сведения о JavaScript
Что нужно для работы JavaScript
Общий синтаксис JavaScript
Переменные и типы данных JavaScript
Определение и преобразование типов данных
Основные функции JavaScript, с которых надо начать
Операторы и управляющие конструкции JavaScript
Математические функции JavaScript
Функции JavaScript, определяемые пользователем
Работа с массивами в JavaScript
Описание слайда:
Содержание Общие сведения о JavaScript Что нужно для работы JavaScript Общий синтаксис JavaScript Переменные и типы данных JavaScript Определение и преобразование типов данных Основные функции JavaScript, с которых надо начать Операторы и управляющие конструкции JavaScript Математические функции JavaScript Функции JavaScript, определяемые пользователем Работа с массивами в JavaScript

Слайд 3





Содержание
Работа со строками в JavaScript
Функции JavaScript по работе с датой и временем
Обработка событий в JavaScript, работа с DOM
Отложенное выполнение функций в JavaScript
Работа с XML / JSON в JavaScript
Обработка ошибочных ситуаций и исключений в JavaScript
ООП в JavaScript
Регулярные выражения в JavaScript
Использование XMLHttpRequest
Кроссдоменные запросы
Описание слайда:
Содержание Работа со строками в JavaScript Функции JavaScript по работе с датой и временем Обработка событий в JavaScript, работа с DOM Отложенное выполнение функций в JavaScript Работа с XML / JSON в JavaScript Обработка ошибочных ситуаций и исключений в JavaScript ООП в JavaScript Регулярные выражения в JavaScript Использование XMLHttpRequest Кроссдоменные запросы

Слайд 4


Основы JavaScript, слайд №4
Описание слайда:

Слайд 5





Общие сведения о JavaScript
Описание слайда:
Общие сведения о JavaScript

Слайд 6





Общие сведения о JavaScript
Описание слайда:
Общие сведения о JavaScript

Слайд 7





Что можно сделать с помощью JavaScript
Описание слайда:
Что можно сделать с помощью JavaScript

Слайд 8





Что нужно для работы JavaScript
Описание слайда:
Что нужно для работы JavaScript

Слайд 9





Что нужно для работы JavaScript
Описание слайда:
Что нужно для работы JavaScript

Слайд 10





Что нужно для работы JavaScript
Описание слайда:
Что нужно для работы JavaScript

Слайд 11





Что нужно для работы JavaScript
Описание слайда:
Что нужно для работы JavaScript

Слайд 12





Запуск в браузере
Описание слайда:
Запуск в браузере

Слайд 13





Запуск в браузере
Описание слайда:
Запуск в браузере

Слайд 14





Общий синтаксис JavaScript
Описание слайда:
Общий синтаксис JavaScript

Слайд 15





Команды JavaScript
Описание слайда:
Команды JavaScript

Слайд 16





Комментарии в JavaScript
Описание слайда:
Комментарии в JavaScript

Слайд 17





Регистрочувствительность
Описание слайда:
Регистрочувствительность

Слайд 18





Точки с запятыми в JavaScript
Описание слайда:
Точки с запятыми в JavaScript

Слайд 19





Точки с запятыми в JavaScript
Описание слайда:
Точки с запятыми в JavaScript

Слайд 20





Переменные и типы данных JavaScript
Описание слайда:
Переменные и типы данных JavaScript

Слайд 21





Переменные в JavaScript
Описание слайда:
Переменные в JavaScript

Слайд 22





Переменные в JavaScript
Описание слайда:
Переменные в JavaScript

Слайд 23





Переменные в JavaScript
Описание слайда:
Переменные в JavaScript

Слайд 24





Типы данных в JavaScript
Описание слайда:
Типы данных в JavaScript

Слайд 25





Элементарные типы данных: Boolean
Описание слайда:
Элементарные типы данных: Boolean

Слайд 26





Элементарные типы данных: Number
Описание слайда:
Элементарные типы данных: Number

Слайд 27





Элементарные типы данных: Number
Описание слайда:
Элементарные типы данных: Number

Слайд 28





Элементарные типы данных: Number
Описание слайда:
Элементарные типы данных: Number

Слайд 29





Элементарные типы данных: String
Описание слайда:
Элементарные типы данных: String

Слайд 30





Элементарные типы данных: String
Описание слайда:
Элементарные типы данных: String

Слайд 31





Элементарные типы данных: null
Описание слайда:
Элементарные типы данных: null

Слайд 32





Элементарные типы данных: undefined
Описание слайда:
Элементарные типы данных: undefined

Слайд 33





Элементарные типы данных: разница между null и undefined
Описание слайда:
Элементарные типы данных: разница между null и undefined

Слайд 34





Объектные типы данных: Object
Описание слайда:
Объектные типы данных: Object

Слайд 35





Объектные типы данных: Object
Описание слайда:
Объектные типы данных: Object

Слайд 36





Объектные типы данных: Array
Описание слайда:
Объектные типы данных: Array

Слайд 37





Объектные типы данных: Array
Описание слайда:
Объектные типы данных: Array

Слайд 38





Объектные типы данных: Array
Описание слайда:
Объектные типы данных: Array

Слайд 39





Объектные типы данных: Array
Описание слайда:
Объектные типы данных: Array

Слайд 40





Объектные типы данных: Array
Описание слайда:
Объектные типы данных: Array

Слайд 41





Объектные типы данных: Function
Описание слайда:
Объектные типы данных: Function

Слайд 42





Константы в JavaScript
Описание слайда:
Константы в JavaScript

Слайд 43





Определение и преобразование типов данных
Описание слайда:
Определение и преобразование типов данных

Слайд 44





Определение типа переменной
Описание слайда:
Определение типа переменной

Слайд 45





Определение типа переменной
Описание слайда:
Определение типа переменной

Слайд 46





Определение типа переменной
Описание слайда:
Определение типа переменной

Слайд 47





Определение принадлежности классу
Описание слайда:
Определение принадлежности классу

Слайд 48





Преобразование типа переменной
Описание слайда:
Преобразование типа переменной

Слайд 49





Преобразование к Boolean
Описание слайда:
Преобразование к Boolean

Слайд 50





Преобразование к Number
Описание слайда:
Преобразование к Number

Слайд 51





Преобразование к Number
Описание слайда:
Преобразование к Number

Слайд 52





Преобразование к Number
Описание слайда:
Преобразование к Number

Слайд 53





Преобразование к String
Описание слайда:
Преобразование к String

Слайд 54





Преобразование к Array
Описание слайда:
Преобразование к Array

Слайд 55





Преобразование к Array
Описание слайда:
Преобразование к Array

Слайд 56





Преобразование к Object
Описание слайда:
Преобразование к Object

Слайд 57





Важно!
Описание слайда:
Важно!

Слайд 58





Преобразование и переключение типов
Описание слайда:
Преобразование и переключение типов

Слайд 59





Гибкое (мягкое) сравнение (==)
Описание слайда:
Гибкое (мягкое) сравнение (==)

Слайд 60





Жёсткое (строгое) сравнение (===)
Описание слайда:
Жёсткое (строгое) сравнение (===)

Слайд 61





Небольшая задача для закрепления материала
Описание слайда:
Небольшая задача для закрепления материала

Слайд 62





Основные функции JavaScript, с которых надо начать
Описание слайда:
Основные функции JavaScript, с которых надо начать

Слайд 63





Функции, которые нужны всегда
Описание слайда:
Функции, которые нужны всегда

Слайд 64





Вывод данных в выходной поток
Описание слайда:
Вывод данных в выходной поток

Слайд 65





Отладочный вывод данных
Описание слайда:
Отладочный вывод данных

Слайд 66





Проверка существования
Описание слайда:
Проверка существования

Слайд 67





Проверка существования
Описание слайда:
Проверка существования

Слайд 68





Удаление переменных и элементов массива
Описание слайда:
Удаление переменных и элементов массива

Слайд 69





Досрочное прекращение выполнения скрипта
Описание слайда:
Досрочное прекращение выполнения скрипта

Слайд 70





Сборка скрипта из нескольких файлов
Описание слайда:
Сборка скрипта из нескольких файлов

Слайд 71





Несколько очень простых примеров…
Описание слайда:
Несколько очень простых примеров…

Слайд 72





Несколько очень простых примеров…
Описание слайда:
Несколько очень простых примеров…

Слайд 73





Несколько очень простых примеров…
Описание слайда:
Несколько очень простых примеров…

Слайд 74





Несколько очень простых примеров…
Описание слайда:
Несколько очень простых примеров…

Слайд 75





Операторы и управляющие конструкции JavaScript
Описание слайда:
Операторы и управляющие конструкции JavaScript

Слайд 76





Операторы JavaScript
Описание слайда:
Операторы JavaScript

Слайд 77





Виды операторов в JavaScript
Описание слайда:
Виды операторов в JavaScript

Слайд 78





Краткая выдержка из документации
Описание слайда:
Краткая выдержка из документации

Слайд 79





Выражения с несколькими операторами
Описание слайда:
Выражения с несколькими операторами

Слайд 80





Оператор присваивания
Описание слайда:
Оператор присваивания

Слайд 81





Присваивание по ссылке
Описание слайда:
Присваивание по ссылке

Слайд 82





Арифметические операторы
Описание слайда:
Арифметические операторы

Слайд 83





Операторы инкремента и декремента
Описание слайда:
Операторы инкремента и декремента

Слайд 84





Небольшая задача для закрепления материала
Описание слайда:
Небольшая задача для закрепления материала

Слайд 85





Небольшая задача для закрепления материала – пояснение
Описание слайда:
Небольшая задача для закрепления материала – пояснение

Слайд 86





Поразрядные операторы
Описание слайда:
Поразрядные операторы

Слайд 87





Логические операторы
Описание слайда:
Логические операторы

Слайд 88





Операторы сравнения
Описание слайда:
Операторы сравнения

Слайд 89





Строковые операторы
Описание слайда:
Строковые операторы

Слайд 90





Оператор «запятая»
Описание слайда:
Оператор «запятая»

Слайд 91





Оператор проверки принадлежности классу
Описание слайда:
Оператор проверки принадлежности классу

Слайд 92





Оператор определения типа
Описание слайда:
Оператор определения типа

Слайд 93





Оператор доступа к свойству (аксессор)
Описание слайда:
Оператор доступа к свойству (аксессор)

Слайд 94





Оператор проверки наличия свойства
Описание слайда:
Оператор проверки наличия свойства

Слайд 95





Оператор удаления
Описание слайда:
Оператор удаления

Слайд 96





Оператор исполнения
Описание слайда:
Оператор исполнения

Слайд 97





Операторы function, new, this
Описание слайда:
Операторы function, new, this

Слайд 98





Управляющие конструкции JavaScript
Описание слайда:
Управляющие конструкции JavaScript

Слайд 99





Оператор условия
Описание слайда:
Оператор условия

Слайд 100





Оператор условия
Описание слайда:
Оператор условия

Слайд 101





Оператор условия
Описание слайда:
Оператор условия

Слайд 102





Оператор условия
Описание слайда:
Оператор условия

Слайд 103





Оператор переключения
Описание слайда:
Оператор переключения

Слайд 104





Цикл с предусловием
Описание слайда:
Цикл с предусловием

Слайд 105





Цикл с постусловием
Описание слайда:
Цикл с постусловием

Слайд 106





Итерационный цикл
Описание слайда:
Итерационный цикл

Слайд 107





Итерационный цикл
Описание слайда:
Итерационный цикл

Слайд 108





Пропуск остатка итерации и выход из цикла
Описание слайда:
Пропуск остатка итерации и выход из цикла

Слайд 109





Тернарный оператор
Описание слайда:
Тернарный оператор

Слайд 110





Математические функции JavaScript
Описание слайда:
Математические функции JavaScript

Слайд 111





Общие сведения
Описание слайда:
Общие сведения

Слайд 112





Округление чисел
Описание слайда:
Округление чисел

Слайд 113





Получение случайных чисел
Описание слайда:
Получение случайных чисел

Слайд 114





Перевод чисел между системами счисления
Описание слайда:
Перевод чисел между системами счисления

Слайд 115





Определение минимального и максимального значения
Описание слайда:
Определение минимального и максимального значения

Слайд 116





Определение корректности чисел
Описание слайда:
Определение корректности чисел

Слайд 117





Функции JavaScript, определяемые пользователем
Описание слайда:
Функции JavaScript, определяемые пользователем

Слайд 118





Небольшое введение
Описание слайда:
Небольшое введение

Слайд 119





Объявление и вызов функции
Описание слайда:
Объявление и вызов функции

Слайд 120





Область видимости переменных
Описание слайда:
Область видимости переменных

Слайд 121





Передача параметров по значению и по ссылке
Описание слайда:
Передача параметров по значению и по ссылке

Слайд 122





Параметры со значением по умолчанию
Описание слайда:
Параметры со значением по умолчанию

Слайд 123





Передача переменного количества параметров
Описание слайда:
Передача переменного количества параметров

Слайд 124





Рекурсия
Описание слайда:
Рекурсия

Слайд 125





Анонимные функции и замыкания
Описание слайда:
Анонимные функции и замыкания

Слайд 126





Анонимные функции и замыкания
Описание слайда:
Анонимные функции и замыкания

Слайд 127





Пространства имён в JavaScript
Описание слайда:
Пространства имён в JavaScript

Слайд 128





Работа с массивами в JavaScript
Описание слайда:
Работа с массивами в JavaScript

Слайд 129





Общие сведения
Описание слайда:
Общие сведения

Слайд 130





Общие сведения
Описание слайда:
Общие сведения

Слайд 131





Общие сведения
Описание слайда:
Общие сведения

Слайд 132





Функции по работе с массивами
Описание слайда:
Функции по работе с массивами

Слайд 133





Определение количества элементов в массиве
Описание слайда:
Определение количества элементов в массиве

Слайд 134





Определение, является ли переменная массивом
Описание слайда:
Определение, является ли переменная массивом

Слайд 135





Поиск элемента в массиве
Описание слайда:
Поиск элемента в массиве

Слайд 136





Поиск элемента в массиве
Описание слайда:
Поиск элемента в массиве

Слайд 137





Обработка всех элементов массива
Описание слайда:
Обработка всех элементов массива

Слайд 138





Обработка всех элементов массива
Описание слайда:
Обработка всех элементов массива

Слайд 139





Объединение массивов или значений в массивы
Описание слайда:
Объединение массивов или значений в массивы

Слайд 140





Объединение элементов массива в строку
Описание слайда:
Объединение элементов массива в строку

Слайд 141





Сортировка массива
Описание слайда:
Сортировка массива

Слайд 142





Работа с массивом как со стеком
Описание слайда:
Работа с массивом как со стеком

Слайд 143





Работа с массивом как со стеком
Описание слайда:
Работа с массивом как со стеком

Слайд 144





Работа с массивом как с очередью
Описание слайда:
Работа с массивом как с очередью

Слайд 145





Извлечение и удаление части массива
Описание слайда:
Извлечение и удаление части массива

Слайд 146





Задача для закрепления материала
Описание слайда:
Задача для закрепления материала

Слайд 147





Работа со строками в JavaScript
Описание слайда:
Работа со строками в JavaScript

Слайд 148





Общие сведения
Описание слайда:
Общие сведения

Слайд 149





Функции по работе со строками
Описание слайда:
Функции по работе со строками

Слайд 150





Мультибайтовая кодировка строк, определение длины
Описание слайда:
Мультибайтовая кодировка строк, определение длины

Слайд 151





Экранирование символов
Описание слайда:
Экранирование символов

Слайд 152





Работа с отдельными символами строки
Описание слайда:
Работа с отдельными символами строки

Слайд 153





Поиск, замена, разбиение и склеивание строк
Описание слайда:
Поиск, замена, разбиение и склеивание строк

Слайд 154





Поиск, замена, разбиение и склеивание строк
Описание слайда:
Поиск, замена, разбиение и склеивание строк

Слайд 155





Поиск, замена, разбиение и склеивание строк
Описание слайда:
Поиск, замена, разбиение и склеивание строк

Слайд 156





Управление регистром
Описание слайда:
Управление регистром

Слайд 157





Преобразование строки в веб-ссылку
Описание слайда:
Преобразование строки в веб-ссылку

Слайд 158





Работа с регулярными выражениями
Описание слайда:
Работа с регулярными выражениями

Слайд 159





Хэш-функции
Описание слайда:
Хэш-функции

Слайд 160





Задания для закрепления материала
Описание слайда:
Задания для закрепления материала

Слайд 161





Задания для закрепления материала
Описание слайда:
Задания для закрепления материала

Слайд 162





Функции JavaScript по работе с датой и временем
Описание слайда:
Функции JavaScript по работе с датой и временем

Слайд 163





Общие сведения
Описание слайда:
Общие сведения

Слайд 164





Получение текущих даты и времени
Описание слайда:
Получение текущих даты и времени

Слайд 165





Получение текущих даты и времени
Описание слайда:
Получение текущих даты и времени

Слайд 166





Создание определённого значения даты-времени
Описание слайда:
Создание определённого значения даты-времени

Слайд 167





Получение даты-времени в разных форматах
Описание слайда:
Получение даты-времени в разных форматах

Слайд 168





Дата и время: Q&A
Описание слайда:
Дата и время: Q&A

Слайд 169





Задача для закрепления материала
Описание слайда:
Задача для закрепления материала

Слайд 170





Обработка событий в JavaScript, работа с DOM
Описание слайда:
Обработка событий в JavaScript, работа с DOM

Слайд 171





Общая информация
Описание слайда:
Общая информация

Слайд 172





Обработчики событий
Описание слайда:
Обработчики событий

Слайд 173





Обработчики событий: установка через атрибут HTML-тега
Описание слайда:
Обработчики событий: установка через атрибут HTML-тега

Слайд 174





Обработчики событий: установка через свойство объекта
Описание слайда:
Обработчики событий: установка через свойство объекта

Слайд 175





Обработчики событий: специальные решения
Описание слайда:
Обработчики событий: специальные решения

Слайд 176





Обработчики событий: специальные решения
Описание слайда:
Обработчики событий: специальные решения

Слайд 177





Обработчики событий: специальные решения
Описание слайда:
Обработчики событий: специальные решения

Слайд 178





Порядок выполнения событий, стадии перехвата и всплытия
Описание слайда:
Порядок выполнения событий, стадии перехвата и всплытия

Слайд 179





Порядок выполнения событий, стадии перехвата и всплытия
Описание слайда:
Порядок выполнения событий, стадии перехвата и всплытия

Слайд 180





Порядок выполнения событий, стадии перехвата и всплытия
Описание слайда:
Порядок выполнения событий, стадии перехвата и всплытия

Слайд 181





Порядок выполнения событий, стадии перехвата и всплытия
Описание слайда:
Порядок выполнения событий, стадии перехвата и всплытия

Слайд 182





Порядок выполнения событий, стадии перехвата и всплытия
Описание слайда:
Порядок выполнения событий, стадии перехвата и всплытия

Слайд 183





Объект event и его свойства
Описание слайда:
Объект event и его свойства

Слайд 184





Объект event и его свойства
Описание слайда:
Объект event и его свойства

Слайд 185





Работа с DOM в контексте событий
Описание слайда:
Работа с DOM в контексте событий

Слайд 186





Работа с DOM в контексте событий
Описание слайда:
Работа с DOM в контексте событий

Слайд 187





Работа с DOM в контексте событий
Описание слайда:
Работа с DOM в контексте событий

Слайд 188





Работа с DOM в контексте событий
Описание слайда:
Работа с DOM в контексте событий

Слайд 189





Отложенное выполнение функций в JavaScript
Описание слайда:
Отложенное выполнение функций в JavaScript

Слайд 190





Общие сведения
Описание слайда:
Общие сведения

Слайд 191





Отложенное выполнение с setTimeout и setInterval
Описание слайда:
Отложенное выполнение с setTimeout и setInterval

Слайд 192





Отложенное выполнение с setTimeout и setInterval
Описание слайда:
Отложенное выполнение с setTimeout и setInterval

Слайд 193





Отложенное выполнение: setTimeout, setInterval, onload
Описание слайда:
Отложенное выполнение: setTimeout, setInterval, onload

Слайд 194





Работа с XML / JSON в JavaScript
Описание слайда:
Работа с XML / JSON в JavaScript

Слайд 195





Общие сведения
Сейчас мы посмотрим на то, как его можно использовать в JavaScript. А ещё мы посмотрим на…
JSON (JavaScript Object Notation) – специальный  текстовый формат обмена данными, основанный на JavaScript.
Описание слайда:
Общие сведения Сейчас мы посмотрим на то, как его можно использовать в JavaScript. А ещё мы посмотрим на… JSON (JavaScript Object Notation) – специальный текстовый формат обмена данными, основанный на JavaScript.

Слайд 196





Зачем нужны эти форматы?
В JavaScript использование XML или JSON связано, как правило, с обменом данными с сервером с использованием XMLHttpRequest. Какой из форматов выбирать – в большинстве случаев дело вкуса, но мы рассмотрим использование обоих вариантов на примере.
Итак: сервер (код на PHP) генерирует таблицу со случайным количеством рядов и строк, передаёт её скрипту на JavaScript в обоих форматах, а тот, в свою очередь, «парсит» данные и обновляет содержимое страницы.
Описание слайда:
Зачем нужны эти форматы? В JavaScript использование XML или JSON связано, как правило, с обменом данными с сервером с использованием XMLHttpRequest. Какой из форматов выбирать – в большинстве случаев дело вкуса, но мы рассмотрим использование обоих вариантов на примере. Итак: сервер (код на PHP) генерирует таблицу со случайным количеством рядов и строк, передаёт её скрипту на JavaScript в обоих форматах, а тот, в свою очередь, «парсит» данные и обновляет содержимое страницы.

Слайд 197





Пример использования XML/JSON в JavaScript и PHP
Описание слайда:
Пример использования XML/JSON в JavaScript и PHP

Слайд 198





Обработка ошибочных ситуаций и исключений в JavaScript
Описание слайда:
Обработка ошибочных ситуаций и исключений в JavaScript

Слайд 199





Обработка ошибочных ситуаций
Для обработки ошибочных ситуаций в JavaScript в отличие от PHP существует, фактически, один универсальный способ – обработка исключений.
Мы здесь рассмотрим примеры обработки и порождения исключений.
Описание слайда:
Обработка ошибочных ситуаций Для обработки ошибочных ситуаций в JavaScript в отличие от PHP существует, фактически, один универсальный способ – обработка исключений. Мы здесь рассмотрим примеры обработки и порождения исключений.

Слайд 200





Пример обработки исключений с try … catch … finally
Итак, представим, что мы пытаемся установить значение несуществующего свойства несуществующего объекта.
Описание слайда:
Пример обработки исключений с try … catch … finally Итак, представим, что мы пытаемся установить значение несуществующего свойства несуществующего объекта.

Слайд 201





Виды исключений
Фактически, это и всё, что нам доступно. Даже т.н. «условные исключения» (реакция на исключения разных типов) пока ещё не стандартизированы. Сам JavaScript порождает исключения следующих типов (см. объект Error: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error):
EvalError – возникает в процессе работы eval().
RangeError – возникает при нарушении диапазонов (массив отрицательной длины, Number.to*() на числах вне допустимого диапазона, не числах и т.д.)
ReferenceError – аозникает при обращении к несуществующему объекту или элементу.
SyntaxError – возникает в процессе анализа синтаксиса аргумента eval().
TypeError – возникает в случае, когда операция выполняется над элементом недопустимого типа.
URIError – возникает, если в функции encodeURI() или decodeURl() переданы неверные параметры.
Описание слайда:
Виды исключений Фактически, это и всё, что нам доступно. Даже т.н. «условные исключения» (реакция на исключения разных типов) пока ещё не стандартизированы. Сам JavaScript порождает исключения следующих типов (см. объект Error: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error): EvalError – возникает в процессе работы eval(). RangeError – возникает при нарушении диапазонов (массив отрицательной длины, Number.to*() на числах вне допустимого диапазона, не числах и т.д.) ReferenceError – аозникает при обращении к несуществующему объекту или элементу. SyntaxError – возникает в процессе анализа синтаксиса аргумента eval(). TypeError – возникает в случае, когда операция выполняется над элементом недопустимого типа. URIError – возникает, если в функции encodeURI() или decodeURl() переданы неверные параметры.

Слайд 202





Порождение собственных исключений
Мы можем порождать исключения любого из только что перечисленных типов или свои собственные:
Описание слайда:
Порождение собственных исключений Мы можем порождать исключения любого из только что перечисленных типов или свои собственные:

Слайд 203





ООП в JavaScript
Описание слайда:
ООП в JavaScript

Слайд 204





Общие сведения об ООП
ООП – парадигма программирования, в которой основными концепциями являются понятия объектов и классов.
Описание слайда:
Общие сведения об ООП ООП – парадигма программирования, в которой основными концепциями являются понятия объектов и классов.

Слайд 205





ООП в JavaScript – что не так?
Итак, в JavaScript реализовано не классическое ООП (с классами), а т.н. «прототипное наследование».
Логика ООП состоит не в создании классов и объектов, а в… создании объектов СРАЗУ, «из ничего».
Объект можно создать даже вот так:
Описание слайда:
ООП в JavaScript – что не так? Итак, в JavaScript реализовано не классическое ООП (с классами), а т.н. «прототипное наследование». Логика ООП состоит не в создании классов и объектов, а в… создании объектов СРАЗУ, «из ничего». Объект можно создать даже вот так:

Слайд 206





ООП в JavaScript, создание объектов
Чуть более классический вариант – создание функции (напоминаем, в JavaScript функция – тоже объект) с использованием ключевого слова new.
Описание слайда:
ООП в JavaScript, создание объектов Чуть более классический вариант – создание функции (напоминаем, в JavaScript функция – тоже объект) с использованием ключевого слова new.

Слайд 207





ООП в JavaScript, создание объектов, наследование
Как можно понять из предыдущего примера, мы не можем создать «классический класс», не можем использовать модификаторы прав доступа (public, protected, private), не можем создавать «нормальные» статические методы и т.д.
В общем случае это – не проблема, т.к. для простых скриптов нет необходимости в сложных решениях, но мы всё же рассмотрим, как организуется наследование.
Описание слайда:
ООП в JavaScript, создание объектов, наследование Как можно понять из предыдущего примера, мы не можем создать «классический класс», не можем использовать модификаторы прав доступа (public, protected, private), не можем создавать «нормальные» статические методы и т.д. В общем случае это – не проблема, т.к. для простых скриптов нет необходимости в сложных решениях, но мы всё же рассмотрим, как организуется наследование.

Слайд 208





ООП в JavaScript, создание объектов, наследование
Итак, чтобы «унаследовать» «класс» от объекта (не класс от класса!!!) надо сделать так:
Описание слайда:
ООП в JavaScript, создание объектов, наследование Итак, чтобы «унаследовать» «класс» от объекта (не класс от класса!!!) надо сделать так:

Слайд 209





ООП в JavaScript, создание объектов, наследование
Ещё один способ наследования – с использованием Object.create():
Описание слайда:
ООП в JavaScript, создание объектов, наследование Ещё один способ наследования – с использованием Object.create():

Слайд 210





ООП в JavaScript, создание объектов, наследование
Q: Как в JavaScript объявлять конструктор?
A: «Никак». Это просто код внутри «объекта-функции», работающий с this:
Описание слайда:
ООП в JavaScript, создание объектов, наследование Q: Как в JavaScript объявлять конструктор? A: «Никак». Это просто код внутри «объекта-функции», работающий с this:

Слайд 211





ООП в JavaScript, создание объектов, наследование
Q: Как защититься от ошибок создания экземпляров без new?
A: Вот так:
Описание слайда:
ООП в JavaScript, создание объектов, наследование Q: Как защититься от ошибок создания экземпляров без new? A: Вот так:

Слайд 212





ООП в JavaScript, создание объектов, наследование
Q: Да что вообще с этим this такое творится?!
A: Если очень кратко, то логика такая:
Описание слайда:
ООП в JavaScript, создание объектов, наследование Q: Да что вообще с этим this такое творится?! A: Если очень кратко, то логика такая:

Слайд 213





ООП в JavaScript, создание объектов, наследование
Q: А как всё же сделать «классический ООП» -- со статическими методами и свойствами, константами классов, синглтонами и прочим-разным-привычным?
A: Не надо. Несмотря на то, что ответы на любую часть этого вопроса легко выгугливаются (даже реализация примесей (mixins)), всё же JavaScript используется «очень по-своему», и не надо пытаться «написать PHP/C#/Java на JavaScript».
Описание слайда:
ООП в JavaScript, создание объектов, наследование Q: А как всё же сделать «классический ООП» -- со статическими методами и свойствами, константами классов, синглтонами и прочим-разным-привычным? A: Не надо. Несмотря на то, что ответы на любую часть этого вопроса легко выгугливаются (даже реализация примесей (mixins)), всё же JavaScript используется «очень по-своему», и не надо пытаться «написать PHP/C#/Java на JavaScript».

Слайд 214





ООП в JavaScript, создание объектов, наследование
Q: Я прочитал всё это трижды и всё равно ничего не понял. Что делать?
A: Читать дальше. Вот здесь http://habrahabr.ru/post/131714/ есть ещё одно объяснение про «ООП в JS». Возможно, оно покажется более простым.
Описание слайда:
ООП в JavaScript, создание объектов, наследование Q: Я прочитал всё это трижды и всё равно ничего не понял. Что делать? A: Читать дальше. Вот здесь http://habrahabr.ru/post/131714/ есть ещё одно объяснение про «ООП в JS». Возможно, оно покажется более простым.

Слайд 215





Задание для закрепления материала
Реализуйте с помощью JavaScript классическую задачу «о геометрических фигурах»: есть «абстрактная фигура», от которой наследуется эллипс, прямоугольник и треугольник. От эллипса наследуется круг, от прямоугольника – квадрат, от треугольника – равносторонний и прямоугольный треугольники. Для всех фигур нужно вычислять периметр и площадь. Каждая фигура задаётся координатами вершин или координатами центра и радиусом (радиусами).
Описание слайда:
Задание для закрепления материала Реализуйте с помощью JavaScript классическую задачу «о геометрических фигурах»: есть «абстрактная фигура», от которой наследуется эллипс, прямоугольник и треугольник. От эллипса наследуется круг, от прямоугольника – квадрат, от треугольника – равносторонний и прямоугольный треугольники. Для всех фигур нужно вычислять периметр и площадь. Каждая фигура задаётся координатами вершин или координатами центра и радиусом (радиусами).

Слайд 216





Регулярные выражения в JavaScript
Описание слайда:
Регулярные выражения в JavaScript

Слайд 217





Общие сведения
Регулярные выражения вы изучали раньше.
JavaScript почти следует логике PCRE в своих регулярных выражениях, так что подавляющее большинство решений из PHP будет работать и в JavaScript.
Чтобы понять нюансы достаточно глубоко, смотрите документацию по JavaScript, а мы рассмотрим основное и вкратце.
Описание слайда:
Общие сведения Регулярные выражения вы изучали раньше. JavaScript почти следует логике PCRE в своих регулярных выражениях, так что подавляющее большинство решений из PHP будет работать и в JavaScript. Чтобы понять нюансы достаточно глубоко, смотрите документацию по JavaScript, а мы рассмотрим основное и вкратце.

Слайд 218





Объект RegExp
Объект RegExp, отвечающий за работу с регулярными выражениями, можно создать так:
Описание слайда:
Объект RegExp Объект RegExp, отвечающий за работу с регулярными выражениями, можно создать так:

Слайд 219





Использование объекта RegExp
У объекта RegExp есть следующие методы:
exec – выполнить поиск и вернуть массив с результатами и дополнительной информацией.
test – проверить на совпадение и вернуть true или false.
У объекта String есть следующие методы по работе с регулярными выражениями:
match – выполнить поиск и вернуть массив с результатами и дополнительной информацией (или null, если ничего не найдено).
search – проверить на совпадение и вернуть индекс совпадения или -1, если совпадения нет.
replace – произвести поиск и замену.
split – разрезать строку на массив подстрок, используя в качестве разделителя регулярное выражение или фиксированную строку.
Описание слайда:
Использование объекта RegExp У объекта RegExp есть следующие методы: exec – выполнить поиск и вернуть массив с результатами и дополнительной информацией. test – проверить на совпадение и вернуть true или false. У объекта String есть следующие методы по работе с регулярными выражениями: match – выполнить поиск и вернуть массив с результатами и дополнительной информацией (или null, если ничего не найдено). search – проверить на совпадение и вернуть индекс совпадения или -1, если совпадения нет. replace – произвести поиск и замену. split – разрезать строку на массив подстрок, используя в качестве разделителя регулярное выражение или фиксированную строку.

Слайд 220





Использование RegExp.exec()
Рассмотрим пример использования RegExp.exec()
Описание слайда:
Использование RegExp.exec() Рассмотрим пример использования RegExp.exec()

Слайд 221





Использование RegExp.test()
Рассмотрим пример использования RegExp.test()
Описание слайда:
Использование RegExp.test() Рассмотрим пример использования RegExp.test()

Слайд 222





Использование Sring.match()
Рассмотрим пример использования Sring.match()
Описание слайда:
Использование Sring.match() Рассмотрим пример использования Sring.match()

Слайд 223





Использование Sring.search()
Рассмотрим пример использования Sring.search()
Описание слайда:
Использование Sring.search() Рассмотрим пример использования Sring.search()

Слайд 224





Использование Sring.replace()
Рассмотрим пример использования Sring.replace()
Описание слайда:
Использование Sring.replace() Рассмотрим пример использования Sring.replace()

Слайд 225





Использование Sring.split()
Рассмотрим пример использования Sring.split()
Описание слайда:
Использование Sring.split() Рассмотрим пример использования Sring.split()

Слайд 226





Задание для закрепления материала
Задачи:
1) Определить, содержит ли текст хотя бы одно трёхзначное число.
2) Показать все двухзначные числа, стоящие строго в начале или строго в конце строки.
3) Для дат в формате [Д]Д.[М]М.[ГГ]ГГ выделить день, месяц, год.
4) Выделить в тексте дублирующиеся слова.
5) Определить числа с запятой или пробелом в качестве разделителя разрядов.
Описание слайда:
Задание для закрепления материала Задачи: 1) Определить, содержит ли текст хотя бы одно трёхзначное число. 2) Показать все двухзначные числа, стоящие строго в начале или строго в конце строки. 3) Для дат в формате [Д]Д.[М]М.[ГГ]ГГ выделить день, месяц, год. 4) Выделить в тексте дублирующиеся слова. 5) Определить числа с запятой или пробелом в качестве разделителя разрядов.

Слайд 227





Использование XmlHttpRequest
Описание слайда:
Использование XmlHttpRequest

Слайд 228





Общие сведения
XMLHttpRequest – специальное решение (фактически, API), позволяющее выполнять т.н. фоновые запросы к веб-серверу, не обновляя всю страницу целиком.
XMLHttpRequest лежит в основе AJAX (Asynchronous Javascript and XML, асинхронный JavaScript и XML) – набора решений, позволяющих строить максимально интерактивные веб-приложения.
Описание слайда:
Общие сведения XMLHttpRequest – специальное решение (фактически, API), позволяющее выполнять т.н. фоновые запросы к веб-серверу, не обновляя всю страницу целиком. XMLHttpRequest лежит в основе AJAX (Asynchronous Javascript and XML, асинхронный JavaScript и XML) – набора решений, позволяющих строить максимально интерактивные веб-приложения.

Слайд 229





Как это работает
В классическом варианте любые изменения страницы, требующие информации с сервера, приводят к повторной загрузке всей страницы целиком:
Описание слайда:
Как это работает В классическом варианте любые изменения страницы, требующие информации с сервера, приводят к повторной загрузке всей страницы целиком:

Слайд 230





Как это работает
В случае использования AJAX картина становится такой:
Описание слайда:
Как это работает В случае использования AJAX картина становится такой:

Слайд 231





Как это реализовать
Общий принцип прост, и мы его уже изучили (и даже видели пример в главе, посвящённой XML и JSON):
1) Написать код, вызываемый в результате реакции на какое-то событие (как вариант – по таймеру).
2) Создать экземпляр XMLHttpRequest, выполнить запрос и получить ответ.
3) Обработать ответ и внести правки в страницу (или выполнить какие-то иные действия – JavaScript ведь может многое).
Описание слайда:
Как это реализовать Общий принцип прост, и мы его уже изучили (и даже видели пример в главе, посвящённой XML и JSON): 1) Написать код, вызываемый в результате реакции на какое-то событие (как вариант – по таймеру). 2) Создать экземпляр XMLHttpRequest, выполнить запрос и получить ответ. 3) Обработать ответ и внести правки в страницу (или выполнить какие-то иные действия – JavaScript ведь может многое).

Слайд 232





Как это реализовать
С первой и третей частями мы уже хорошо познакомились в соответствующих главах (см. всё, что связано с обработкой событий и управлением DOM).
Потому – сразу переходим ко второй (создать экземпляр XMLHttpRequest, выполнить запрос и получить ответ) и посмотрим, как это сделать максимально универсально и кроссбраузерно.
Итак…
Описание слайда:
Как это реализовать С первой и третей частями мы уже хорошо познакомились в соответствующих главах (см. всё, что связано с обработкой событий и управлением DOM). Потому – сразу переходим ко второй (создать экземпляр XMLHttpRequest, выполнить запрос и получить ответ) и посмотрим, как это сделать максимально универсально и кроссбраузерно. Итак…

Слайд 233





Как это реализовать
Поскольку реализация XMLHttpRequestзависит от браузера, воспользуемся таким решением:
Описание слайда:
Как это реализовать Поскольку реализация XMLHttpRequestзависит от браузера, воспользуемся таким решением:

Слайд 234





Как это реализовать
Получив экземпляр XMLHttpRequest, следует его «настроить»: указать обработчики изменения состояния. Это можно сделать через два свойства:
onreadystatechange – указывается функция, которая будет вызываться при любом изменении состояния (крайне не рекомендуется для синхронных запросов; впрочем, и сами синхронные запросы крайне не рекомендуются);
onload – указывается функция, которая будет вызываться после завершения выполнения запроса.
Описание слайда:
Как это реализовать Получив экземпляр XMLHttpRequest, следует его «настроить»: указать обработчики изменения состояния. Это можно сделать через два свойства: onreadystatechange – указывается функция, которая будет вызываться при любом изменении состояния (крайне не рекомендуется для синхронных запросов; впрочем, и сами синхронные запросы крайне не рекомендуются); onload – указывается функция, которая будет вызываться после завершения выполнения запроса.

Слайд 235





Как это реализовать
У XMLHttpRequest есть следующие состояния:
0 (UNSENT) – метод open() ещё не был вызван.
1 (OPENED) – метод send() ещё не был вызван.
2 (HEADERS_RECEIVED) – метод send() был вызван, и уже доступен статус ответа и заголовки ответа.
3 (LOADING) – идёт загрузка, в свойстве responseText содержится часть полученных данных.
4 (DONE) – операция завершена.
Описание слайда:
Как это реализовать У XMLHttpRequest есть следующие состояния: 0 (UNSENT) – метод open() ещё не был вызван. 1 (OPENED) – метод send() ещё не был вызван. 2 (HEADERS_RECEIVED) – метод send() был вызван, и уже доступен статус ответа и заголовки ответа. 3 (LOADING) – идёт загрузка, в свойстве responseText содержится часть полученных данных. 4 (DONE) – операция завершена.

Слайд 236





Как это реализовать
Метод
инициализирует запрос. Здесь особо стоит отметить параметр async, который в общем случае должен быть true, т.е. в противном случае (при долгих запросах-ответах) в зависимости от браузера можно получить низкую производительность или вовсе «замирание»/«подвисание» приложения или даже всего браузера.
Описание слайда:
Как это реализовать Метод инициализирует запрос. Здесь особо стоит отметить параметр async, который в общем случае должен быть true, т.е. в противном случае (при долгих запросах-ответах) в зависимости от браузера можно получить низкую производительность или вовсе «замирание»/«подвисание» приложения или даже всего браузера.

Слайд 237





Как это реализовать
Метод
отправляет запрос и либо ждёт его завершения (синхронный запрос), либо сразу же завершается (асинхронный запрос).
Из других полезных методов стоит отметить:
abort() – отмена всей операции.
getResponseHeader(String header) – возвращает указанный заголовок ответа или null, если заголовка нет, или он пока не получен.
setRequestHeader(String header, String value) – позволяет указать заголовок HTTP-запроса.
overrideMimeType(String mimetype) – позволяет принудительно указать MIME-тип документа (полезно, например, если нужно будет проанализировать XML-ответ, но сервер не выставил правильный заголовок).
Описание слайда:
Как это реализовать Метод отправляет запрос и либо ждёт его завершения (синхронный запрос), либо сразу же завершается (асинхронный запрос). Из других полезных методов стоит отметить: abort() – отмена всей операции. getResponseHeader(String header) – возвращает указанный заголовок ответа или null, если заголовка нет, или он пока не получен. setRequestHeader(String header, String value) – позволяет указать заголовок HTTP-запроса. overrideMimeType(String mimetype) – позволяет принудительно указать MIME-тип документа (полезно, например, если нужно будет проанализировать XML-ответ, но сервер не выставил правильный заголовок).

Слайд 238





Как это реализовать
Много полезной информации можно получить из свойств:
readyState – текущее состояние операции (см. onreadystatechange).
status – код HTTP-ответа сервера (200, 404 и т.д.)
statusText – «текст кода HTTP-ответа», т.е. "OK" и т.д.
response – «тело ответа» (см. документацию, там много нюансов).
responseText – текст ответа сервера (как правило, или используется сам по себе для вставки в страницу, или содержит JSON).
responseXML – XML-вид ответа сервера (при условии, что сервер ДЕЙСТВИТЕЛЬНО передал в ответ XML-данные).
timeout – позволяет устанавливать таймаут в тысячных долях секунд (по умолчанию == 0, т.е. время выполнения запроса не ограничено).
ontimeout – позволяет указать функцию, которая будет вызвана при наступлении таймаута.
Описание слайда:
Как это реализовать Много полезной информации можно получить из свойств: readyState – текущее состояние операции (см. onreadystatechange). status – код HTTP-ответа сервера (200, 404 и т.д.) statusText – «текст кода HTTP-ответа», т.е. "OK" и т.д. response – «тело ответа» (см. документацию, там много нюансов). responseText – текст ответа сервера (как правило, или используется сам по себе для вставки в страницу, или содержит JSON). responseXML – XML-вид ответа сервера (при условии, что сервер ДЕЙСТВИТЕЛЬНО передал в ответ XML-данные). timeout – позволяет устанавливать таймаут в тысячных долях секунд (по умолчанию == 0, т.е. время выполнения запроса не ограничено). ontimeout – позволяет указать функцию, которая будет вызвана при наступлении таймаута.

Слайд 239





Демонстрация на примере
Теперь соберём всё это вместе и посмотрим, как работает синхронный и асинхронный запрос:
Описание слайда:
Демонстрация на примере Теперь соберём всё это вместе и посмотрим, как работает синхронный и асинхронный запрос:

Слайд 240





Кроссдоменные запросы
Описание слайда:
Кроссдоменные запросы

Слайд 241





Суть проблемы
Браузеры по соображениям безопасности ограничивают возможности скриптов по взаимодействию с другими доменами, т.е. учитывают комбинацию схемы, имени хоста и порта для того, чтобы определить, откуда был загружен скрипт, и разрешить ему выполнять только запросы по тому же адресу.
Описание слайда:
Суть проблемы Браузеры по соображениям безопасности ограничивают возможности скриптов по взаимодействию с другими доменами, т.е. учитывают комбинацию схемы, имени хоста и порта для того, чтобы определить, откуда был загружен скрипт, и разрешить ему выполнять только запросы по тому же адресу.

Слайд 242





Решение проблемы
Однако иногда есть объективная необходимость выполнять такие (т.н. «кроссдоменные») запросы. Сделать это помогает…
JSONP (JSON with padding) – расширение формата JSON, предоставляющее возможность запросить данные с «чужого домена».
Описание слайда:
Решение проблемы Однако иногда есть объективная необходимость выполнять такие (т.н. «кроссдоменные») запросы. Сделать это помогает… JSONP (JSON with padding) – расширение формата JSON, предоставляющее возможность запросить данные с «чужого домена».

Слайд 243





Как это работает
Сначала рассмотрим серверную часть. Здесь важны две вещи:
1. Верные заголовки HTTP-ответа.
2. Правильное формирование контента.
Рассмотрим на примере выполнения кроссдоменного запроса (будем посылать запрос на виртуальную машину)…
Описание слайда:
Как это работает Сначала рассмотрим серверную часть. Здесь важны две вещи: 1. Верные заголовки HTTP-ответа. 2. Правильное формирование контента. Рассмотрим на примере выполнения кроссдоменного запроса (будем посылать запрос на виртуальную машину)…

Слайд 244





Как это работает
Серверная часть:
Описание слайда:
Как это работает Серверная часть:

Слайд 245





Как это работает
На клиентской части нужно сделать две вещи:
1. Подготовить функцию, имя которой передано на сервер в качестве параметра запроса.
2. Динамически создать элемент <script>.
Идея состоит в том, что вы не ВЫПОЛНЯЕТЕ запрос к «чужому домену», а создаёте запрос, который загружает «скрипт» (JSON-данные, обёрнутые в вызов функции) с нужного вам домена. Как только этот «скрипт» загрузится, функция будет вызвана. А у вас в документе она уже есть – и всё.
Описание слайда:
Как это работает На клиентской части нужно сделать две вещи: 1. Подготовить функцию, имя которой передано на сервер в качестве параметра запроса. 2. Динамически создать элемент <script>. Идея состоит в том, что вы не ВЫПОЛНЯЕТЕ запрос к «чужому домену», а создаёте запрос, который загружает «скрипт» (JSON-данные, обёрнутые в вызов функции) с нужного вам домена. Как только этот «скрипт» загрузится, функция будет вызвана. А у вас в документе она уже есть – и всё.

Слайд 246





Как это работает
Клиентская часть:
Описание слайда:
Как это работает Клиентская часть:

Слайд 247





Как это работает
Итак, важное и ещё раз:
Это – НЕ XMLHttpRequest! Да, это динамическая подгрузка данных, но она работает БЕЗ XMLHttpRequest.
Алгоритм такой:
Создать на клиенте функцию.
Добавить на клиенте в тело документа скрипт, …
Которому указать в SRC нужный адрес на «чужом» домене.
Когда скрипт загрузится, выполнится ваша клиентская callback-функция и получит в качестве аргумента присланные данные.
Описание слайда:
Как это работает Итак, важное и ещё раз: Это – НЕ XMLHttpRequest! Да, это динамическая подгрузка данных, но она работает БЕЗ XMLHttpRequest. Алгоритм такой: Создать на клиенте функцию. Добавить на клиенте в тело документа скрипт, … Которому указать в SRC нужный адрес на «чужом» домене. Когда скрипт загрузится, выполнится ваша клиентская callback-функция и получит в качестве аргумента присланные данные.

Слайд 248





С JavaScript – всё!
О ещё некоторых небольших особенностях работы с JavaScript мы поговорим в следующем разделе, посвящённом jQuery.
Описание слайда:
С JavaScript – всё! О ещё некоторых небольших особенностях работы с JavaScript мы поговорим в следующем разделе, посвящённом jQuery.

Слайд 249





Svyatoslav Kulikov
Основы JavaScript
Описание слайда:
Svyatoslav Kulikov Основы JavaScript



Похожие презентации
Mypresentation.ru
Загрузить презентацию