Javascript

Задание 1.
а) Создайте html страницу с кнопкой, на которой написано "Кнопка А", и надписью "Кнопки ещё не нажимались" под кнопкой. 
б) Сделайте так, чтобы при нажатии на кнопку надпись менялась на "Кнопка А когда-то была нажата"
в) Добавьте кнопку Б, при её нажатии должно быть написано "Кнопка Б когда-то была нажата" (если были нажаты обе кнопки, то должна быть надпись "Обе кнопки когда-то были нажаты"

Задание 2.
а) Создайте html страницу с 100 кнопками, внутри которых написаны числа от 1 до 100 (воспользуйтесь <button style="width:50px">1</button> для того, чтобы кнопки были одинакового размера)
Для этого воспользуйтесь следующим кодом внутри <script>:

window.onload = function(e) {
  //здесь какой-то код, который сработает как только страница загрузиться
  alert("Я загрузился!") // к примеру, если скопировать этот код, то при загрузке страницы будет появляться уведомление
}

Добавьте следующий функционал:
б) при нажатии на число в какой-то части страницы появляется это число (то есть при нажатии на 49 будет писаться 49);
в) при первом нажатии пишется число и знак +, при втором пишется следующее выражение: *первое число* + *второе число* = *их сумма*. При последующих нажатиях ничего не происходит;
г) добавьте кнопку "ОТМЕНА", которая очищает текст и позволяет заново набирать числа.

Задание 3. (бонус)
а) Создайте html страницу с текстом 00:00:00 и тремя кнопками: "старт", "стоп" и "сброс". Сделайте таймер: при нажатии старт будет писаться время с момента нажатия старт в следующем формате: чч:мм:сс ; при нажатии стоп таймер останавливается, при повторном нажатии старт время продолжается; при нажатии сброс таймер обнуляется.
Вам могут потребоваться следующая функция:
Date.now() // получить текущее время в миллисекундах от 1 января 1970 года
SetTimeout(f, t) // запустить функцию f через время t (в миллисекундах)
б) Сделайте так, что перезагрузка страницы не обнуляет таймер, а продолжает его в том состоянии, в котором он закончил. Воспользуйтесь следующим кодом:
localStorage.setItem(ItemName, 10) // Задать значение переменной ItemName равному 10 в локальном хранилице
localStorage.ItemName // Получить значение переменной ItemName