Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Содержание домашней работы

Урок 1. Современный JavaScript

  • 1. Добавьте стили для верхнего меню, товара, списка товаров и кнопки вызова корзины.
  • 2. Добавьте значения по умолчанию для аргументов функции. Как можно упростить или сократить запись функций?
  • 3. Сейчас после каждого товара на странице выводится запятая. Из-за чего это происходит? Как это исправить?

Урок 2. ООП в JavaScript

  • 1. Добавьте пустые классы для корзины товаров и элемента корзины товаров. Продумайте, какие методы понадобятся для работы с этими сущностями.
  • 2. Добавьте для GoodsList метод, определяющий суммарную стоимость всех товаров.
  • 3. *Некая сеть фастфуда предлагает несколько видов гамбургеров:
  • Маленький (50 рублей, 20 калорий).
  • Большой (100 рублей, 40 калорий).

Гамбургер может быть с одним из нескольких видов начинок (обязательно):

  • С сыром (+10 рублей, +20 калорий).
  • С салатом (+20 рублей, +5 калорий).
  • С картофелем (+15 рублей, +10 калорий). Дополнительно гамбургер можно посыпать приправой (+15 рублей, +0 калорий) и полить майонезом (+20 рублей, +5 калорий). Напишите программу, рассчитывающую стоимость и калорийность гамбургера. Можно использовать примерную архитектуру класса из методички, но можно использовать и свою.

Урок 3. Асинхронные запросы

  • 1. Переделайте makeGETRequest() так, чтобы она использовала промисы.
  • 2. Добавьте в соответствующие классы методы добавления товара в корзину, удаления товара из корзины и получения списка товаров корзины.
  • 3. *Переделайте GoodsList так, чтобы fetchGoods() возвращал промис, а render() вызывался в обработчике этого промиса.

Урок 4. Регулярные выражения

  • 1. Дан большой текст, в котором для оформления прямой речи используются одинарные кавычки. Придумать шаблон, который заменяет одинарные кавычки на двойные.
  • 2. Улучшить шаблон так, чтобы в конструкциях типа aren't одинарная кавычка не заменялась на двойную.
  • 3. *Создать форму обратной связи с полями: Имя, Телефон, E-mail, текст, кнопка Отправить. При нажатии на кнопку Отправить произвести валидацию полей следующим образом:
  • a. Имя содержит только буквы.
  • b. Телефон имеет вид +7(000)000-0000.
  • c. E-mail имеет вид mymail@mail.ru, или my.mail@mail.ru, или my-mail@mail.ru.
  • d. Текст произвольный.
  • e. Если одно из полей не прошло валидацию, необходимо выделить это поле красной рамкой и сообщить пользователю об ошибке.

Урок 5. Фреймворк Vue.js

  • 1. Добавить методы и обработчики событий для поля поиска. Создать в объекте данных поле searchLine и привязать к нему содержимое поля ввода. На кнопку «Искать» добавить обработчик клика, вызывающий метод FilterGoods.
  • 2. Добавить корзину. В html-шаблон добавить разметку корзины. Добавить в объект данных поле isVisibleCart, управляющее видимостью корзины.
  • 3. *Добавлять в .goods-list заглушку с текстом «Нет данных» в случае, если список товаров пуст.

Урок 6. Компоненты Vue.js

  • 1. Вынести поиск в отдельный компонент.
  • 2. Вынести корзину в отдельный компонент.
  • 3. *Создать компонент с сообщением об ошибке. Компонент должен отображаться, когда не удаётся выполнить запрос к серверу.

Урок 7. JavaScript на сервере

  • 1. Привязать добавление товара в корзину к реальному API.
  • 2. Добавить API для удаления товара из корзины.
  • 3. *Добавить файл stats.json, в котором будет храниться статистика действий пользователя с корзиной. В файле должны быть поля с названием действия (добавлено/удалено), названием товара, с которым производилось действие и временем, когда оно было совершено.

Урок 8. Тестирование и сборка

  • 1. Вынести компоненты интернет-магазина в отдельные модули и настроить сборку.
  • 2. Найти в официальной документации способ автоматически перезапускать webpack при изменении файла. Изменить скрипт build, добавив туда этот способ. Подсказка: при запуске нужно использовать определённый флаг.
  • 3. *Написать приложение-калькулятор, используя подход BDD. Приложение должно состоять из четырёх методов для сложения, вычитания, умножения и деления. Каждый метод принимает на вход два аргумента и выполняет действие. При написании тестов учесть случаи, когда на вход подаются не числа, а строки, null или undefined.

About

Репозиторий для практических заданий по курсу "JavaScript. Уровень 2"

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages