- •1.Архитектура Клиент-Сервер. Взаимодействие клиента и сервера в сети интернет. Основные понятия языков разметки: sgml, html, xhtml, dhtml, xml.
- •2.Програмное обеспечение клиента и сервера. Взаимодействие веб-клиента и серверного программного обеспечения. Протоколы обмена данными.
- •5. Язык js. Его возможности и ограничения. Лексемы. Идентификаторы. Ключевые слова и зарезервированные слова. Типы данных. Произведение типов. Константы. Переменные.
- •6. Локальные и глобальные переменные. Массивы. Обработка элементов массива и способы вывода результата. Организация ассоциативных массивов в js.
- •7. Массив как объект. Встроенные методы для работы с массивами. Добавление и удаление элементов массива.
- •8. Каскадные таблицы стилей css: основные понятия и определения. Селекторы, свойства, аргументы. Селекторы тэгов. Классы стилей. Способы подключения таблицы стилей. Возможности css3.
- •9. Интерактивное управление динамическим состоянием объектов. Псевдоклассы и псевдоэлементы.
- •10. Условные операторы if, if…else. Оператор switch. Способы обработки исключительных ситуаций. Оператор instanceof в js.
- •12. Понятие функций в js. Создание функций. Использование параметров. Передача объекта по ссылке в функциях.
- •11. Операторы цикла for, for..In, while, do..While, break, continue.
- •13. Встроенные функции в объекты js (window, document, array и др.). Встроенные функции для взаимодействия с пользователем в js.
- •14. Рекурсивные функции и анонимные функции в js. Функции как объекты. Их назначение и примеры использования. Функции обработанного вызова (callback). Их назначение и параметры использования.
- •15. Объекты js. Понятие объекта. Виды объектов. Создание пользовательских объектов js, и работа с ним.
- •1. Создание прямого экземпляра объекта
- •2. Создание конструктора объекта
- •16. Наследование в js на основе концепций прототипноориентированного языка. Свойство prototype. Добавление свойств и методов к конструкторам объектов.
- •17. Создание и наследование классов в js на основе стандартов Ecma 6.
- •18. Свойства объектов, методы, события. Добавление, удаление, доступ к свойствам. Создание конструкторов и их роль для новых свойств объектов.
- •19. Встроенные методы для работы со строковыми объектами. Работа с регулярными выр-ми. Возможности обработки строковых данных в js.
- •20. Браузеры и их функциональные возможности. Особенности реализации web-приложений в разных браузерах. Иерархия объектов браузера.
- •21. Понятие и структура bom. Объекты верхнего уровня.
- •22. Работа с окнами. Объект Window. Свойства окна. Создание, открытие и закрытие окон. Основные методы и свойства окон.
- •23. Понятие иерархической модели dom. Варианты поиска элементов.
- •24. Определение событий формы. Создание элементов формы. Методы для работы с формами.
- •25. Использование набора многократно используемых объектов и функций библиотек js (jQuery, Prototype, Mootools, Dojo) при разработке веб-приложений.
- •26. Работа с событиями экрана, клавиатуры, мыши в js. Добавление метода в html dom addEventListener().
- •27. Хранение данных на стороне клиента. Виды хранения. Преимущества и недостатки сохранения данных на стороне клиента.
- •Cookie - это специальные файлы, создаваемые веб - сервером и хранящиеся на компьютере клиента. Данные передаются серверу и обратно. Плюс – простота.
- •Технология Web Storage
- •28. Особенности использования Cookie в js. Сохранение и уничтожение данных с помощью Cookie.
- •29. Использование html5 Application Cache для хранения данных на стороне клиента. Возможности и ограничения html5 Application Cache.
- •30. Использование html5 Web Storage для сохранения данных на клиентской стороне. Локальное и сессионное хранилище, их создание, использование и особенности.
- •31. Технология Ajax для передачи данных в фоновом режиме. Объект xmlHttpRequest. Обработка ответов от сервера.
- •32. Особенности хранения данных с помощью WebSql. Метод executeSql(). Организация табличного хранения данных. Внесение и удаление данных из таблиц.
- •34. Особенности применения паттернов проектирования (mvc,mvvm,mvp) в js.
- •35.Использование паттерна mvp на основе библиотек Backbone и AngularJs.
- •37. Технология динамического обращения к серверу без перегрузки всей страницы. Передача данных на страницу данных в формате html, .Txt, xml и json.
- •38. Особенности функционального программирования в js. Метод bind(), немедленно вызываемые функции, самоопределяющиеся функции.
- •39. Функции замыкания и обратного вызова (callback) в js. Роль функций обратного вызова в организации асинхронного обмена данными (на примере Node.Js).
- •40. Управление зависимостями: принципы модульного программирования в js. Концепции amd.
- •41. Использование модульного подхода к программированию в js на примере работы с библиотекой Require.Js.
- •42. Менеджер задач (на примере Grunt). Варианты заданий.
- •43. Назначение и функции пакетных менеджеров Bower и npm.
- •44. Платформа Node.Js и ее возможности. Программирование на стороне сервера.
- •45. Использование документно-ориентированных баз данных в js. Организация хранения данных на примере MongoDb.
- •46. Ключевые моменты оценки качества веб-проектов. Практические методы client-side оптимизации.
- •1.Архитектура Клиент-Сервер. Взаимодействие клиента и сервера в сети интернет. Основные понятия языков разметки: sgml, html, xhtml, dhtml, xml.
17. Создание и наследование классов в js на основе стандартов Ecma 6.
Ecma6 – язык-прородитель JS, не имеет возможностей ввода-вывода (раньше). А также стандарт, обновлённый в 2015 году.
Классы определяются в ECMAScript 6 (ES6) следующим образом:
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
}
Использовать этот класс можно просто, вызвав конструктор функции:
> var p = new Point(25, 8);
> p.toString()
'(25, 8)'
Вызвать этот класс можно только через new, а не через вызов функции.
В отличие от функций, определения классов не поднимаются. Таким образом, класс существует только после того, как его определение было достигнуто и выполнено. Попытка создания класса до этого момента приведет к «ReferenceError».
Три вида методов создания классов:
конструктор
Он имеет особенности, которые обычный конструктор функции не имеет (главным образом, способность конструктора вызывать конструктор базового класса через super()). Этот метод является особенным, так как он определяет функцию, которая представляет собой класс:
> Foo === Foo.prototype.constructor
true
> typeof Foo
'function'
статические методы
Статические свойства (или свойства класса) являются свойствами самого Foo. Если вы определили метод с помощью static, значит вы реализовали метод класса:
> typeof Foo.staticMethod
'function'
> Foo.staticMethod()
'classy'
прототипные методы
свойства прототипа Foo являются и свойствами Foo.prototype. Это, как правило, методы, и наследуются экземплярами Foo.
> typeof Foo.prototype.prototypeMethod
'function'
> foo.prototypeMethod()
'prototypical'
Наследование
Ключевое слово extends позволяет создать класс-наследник существующего конструктора (который возможно был определен с помощью класса):
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
}
class ColorPoint extends Point {
constructor(x, y, color) {
super(x, y); // (A)
this.color = color;
}
toString() {
return super.toString() + ' in ' + this.color; // (B)
}
}
В данном случае мы имеем два вида классов:
Point — это базовый класс, потому что он не имеет выражения extends.
ColorPoint — производный класс.
Есть два способа использовать ключевое слово super:
Конструктор класса (псевдо-метод «constructor» в теле класса), использует его как вызов функции (_super(•••)_), для того, чтобы вызвать базовый конструктор (строка A).
Определения методов (в объектах, заданных через литерал, или классах, статических или нет), используют это для вызова свойства (_super.prop_), или вызова метода (_super.method(•••)_), для ссылки на свойства базового класса (строка B).
18. Свойства объектов, методы, события. Добавление, удаление, доступ к свойствам. Создание конструкторов и их роль для новых свойств объектов.
Метод объекта - это функция, которая добавлена в ассоциативный массив.
Добавление свойств
o.test = 5
o["test"] = 5
Квадратные скобки используются в основном, когда название свойства находится в переменной.
Доступ к свойствам
Доступ к свойству осуществляется точно так же:
alert (o.test)
alert (o['test'])
Все свойства объектов - public, т.е. при определении свойства никак нельзя ограничить доступ к свойству. В JS есть спец. выверты для создания private свойств, связанные с замыканиями. Они рассмотрены вместе с наследованием объектов.
Удаление свойств
Удаляет свойство оператор delete:
o.test = 5
delete o.test
o['bla'] = true
Событие - это сигнал от браузера о том, что что-то произошло. Множество событий:
• DOM-события. Например, событие click происходит при клике на элементе.
• События окна. Например, событие resize - при изменении размера окна браузера.
Именно DOM-события связывают действия, происходящие в HTML, с кодом JS, обеспечивая динамический веб-интерфейс.
Объект событие всегда передается обработчику и содержит массу полезной информации о том, где и какое событие произошло.
Способов передачи этого объекта обработчику существует ровно два, и они зависят от способа его установки и от браузера.
1) function doSomething(event) {
event - будет содержать объект события}
element.onclick = doSomething;
При вызове обработчика объект события event будет передан ему первым аргументом.
2) В Internet Explorer существует глобальный объект window.event, который хранит в себе информацию о последнем событии.
function doSomething() {
window.event - объект события}
element.onclick = doSomething;
Из объекта события обработчик может узнать, на каком элементе оно произошло, каковы были координаты мыши (для событий, связанных с мышью), какая клавиша была нажата (для событий, связанных с клавиатурой).
•button –состояние кнопок мыши во время события
•clientXclient-координаты указателя мыши относительно области окна
•altKey-состояние клавиши alt
•ctrlKey состояние клавиши ctrl
•shiftKey состояние клавиши shift
•keyCode код нажатой клавиши
Конструктор объектов - это шаблон, на основе которого создаются объекты. Написанный один раз конструктор, позволяет создать неограниченное количество объектов любой сложности написав лишь одну строчку кода.
Преимущества данного способа заключается в том, что он позволяет разделить логику создания объекта от его использования. Например, один человек может специализироваться на создании сложных конструкторов объектов, а другой на написании на основе этих объектов конечных программ под заказ.
