- •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.
5. Язык js. Его возможности и ограничения. Лексемы. Идентификаторы. Ключевые слова и зарезервированные слова. Типы данных. Произведение типов. Константы. Переменные.
JS обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности страниц.
Возможности:
- создавать новые HTML-теги, удалять существующие, менять стили элементов, прятать, показывать элементы.
- реагировать на действия посетителя, обрабатывать клики мыши, перемещение курсора, нажатие на клавиатуру.
- посылать запросы на сервер и загружать данные без перезагрузки страницы ("AJAX").
- запрашивать данные, выводить сообщения.
Ограничения:
- JS не может читать/записывать произвольные файлы на жесткий диск, копировать их или вызывать программы. Он не имеет прямого доступа к ОС.
- JS, работающий в одной вкладке, не может общаться с другими вкладками и окнами, за исключением, когда он сам открыл это окно или несколько вкладок
Лексема - это минимальная часть языка, имеющая самостоятельный смысл. К ним относятся: разделители, идентификаторы, литералы, операции, операторы. Лексемы распространяются между разделителями (пробелами, tab или переносом строки).
Примеры лексем
var myLexeme;//тут 4 лексемы (var, пробел, myLexeme;)
myLexeme = "строка"; // тут 6 лексем
Ключевые слова: break, Function, return, var, case, delete, if, switch, void, catch, do, in, this, while, const, else, instanceof, throw, continue, try, debugger, for, for in, new, typeof.
Идентификатор - это уникальное имя переменной, константы, пользовательской функции, объекта, массива, ключевых и зарезервированных слов, меток. Примеры идентификаторов:
var myIdentifier; //тут 2 идентификатора (var и myIdentifier)
function myIdentifier() { } // тут два идентификатора
Типы данных: Простые типы (Number, String, Boolean, Null, Undefined), Объект(Object), Специальные объекты (Function, Array, Date, RegExp, Error).
Элементарные - создаются простым указанием данных:
var orange = "Апельсин"
Объектные - например, через оператор new:
var orange = new String("Апельсин")
Приведение типов:
“3” + 4 + 5 = “345” // Строка
3 + 4 + “5” = “75” // Число (3+4) и Строка “5” = “75”
var a = +"123"; // 123
var a = Number("123"); // 123, тот же эффект
alert( true + "test" ); // "truetest"
Константа - это переменная, которая никогда не меняется. Как правило, их называют большими буквами, через подчёркивание. Например:
var COLOR_RED = "#F00";
var COLOR_ORANGE = "#FF7F00";
alert (color ); // #FF7F00
Переменная состоит из имени и выделенной области памяти, которая ему соответствует. Для объявления переменной используется ключевое слово var:
var message;
message = 'Hello'; // сохраним в переменной строку.
На имя переменной в JS наложены всего два ограничения:
- Имя может состоять из: букв, цифр, символов $
- Первый символ не должен быть цифрой.
Регистры разные!
6. Локальные и глобальные переменные. Массивы. Обработка элементов массива и способы вывода результата. Организация ассоциативных массивов в js.
Глобальная доступна везде, локальная только в текущей области видимости (в функции или методе). При присвоении значения неопределенной локальной переменной используется или создается глобальная переменная.
function foo() {
a = 2;
b = 3;
return a+b; }
a = 'очень важное значение';
alert(a); // очень важное значение
foo();
alert(a); // 2
Массивы. Инициализация:
var a = new Array() // a[0] = “1”, a[1] = “2”
var a = [“1”, “2”, “3”];
var a = new Array(“1”, “2”, “3”)
Добавлять новый элемент можно:
а [a.length] = "new element"
a.push ("new element")
Перебор элементов обычно j осуществляется циклом:
var a= [ "one", "two", "three" ]
for (var i=0; i<a.length; i++) {
... сделать что-то с arr[i] ...}
1) slice (begin[, end]) // Возвращает подмассив с индексами begin…end.
2) splice (index, deleteCount[, element1,…, elementN]) // Удалить deleteCount эл-в, начиная с index, и вставить на их место element1…element
Ассоциативный массив - структура данных, в которой можно хранить любые данные в формате ключ-значение.
<script type="text/javascript">
var array = {'Name': 'Michael', 'Age': '22', 'Country': 'Russia'}; // Создаём ассоциативный массив
array["add"] = 15; // Добавим ещё элемент
/* Перебор асс массива и вывод ключей и их зн-й */
for (var i in array)
alert("Ключ = " + i + "; Значениее = " + array[i]);
</script>
Пример № 2
var s_list = new Object();
s_list["fat"] = "Толстый";
s_list["small"] = "Маленький";
s_list["name"] = "Гомер";
for (var x in s_list) //выведем на экран все эл-ты
document.write (s_list[x] + "<br>");
