Finally или просто код?
важность: 5
Сравните два фрагмента кода.
Первый использует finally для выполнения кода по выходу из try..catch :
try {
начать работу работать
} catch (e) { обработать ошибку
} finally {
финализация: завершить работу
}
Второй фрагмент просто ставит очистку ресурсов за try..catch :
try {
начать работу
} catch (e) { обработать ошибку
}
финализация: завершить работу
Нужно, чтобы код финализации всегда выполнялся при выходе из блока try..catch и, таким образом, заканчивал начатую работу. Имеет ли здесь
finally какое‑то преимущество или оба фрагмента работают одинаково?
Если имеет, то дайте пример когда код с finally работает верно, а без – неверно.
К решению
Eval‑калькулятор с ошибками
важность: 5
Напишите интерфейс, который принимает математическое выражение (в prompt ) и результат его вычисления через eval .
При ошибке нужно выводить сообщение и просить переввести выражение.
Ошибкой считается не только некорректное выражение, такое как 2+ , но и выражение, возвращающее NaN , например 0/0 . Запустить демо
К решению
ООП в функциональном стиле
Инкапсуляция и наследование в функциональном стиле, а также расширенные возможности объектов JavaScript.
Введение
На протяжении долгого времени в программировании применялся процедурный подход . При этом программа состоит из функций, вызывающих друг друга.
Гораздо позже появилось объектно‑ориентированное программирование (ООП), которое позволяет группировать функции и данные в единой сущности – «объекте».
При объектно‑ориентированной разработке мы описываем происходящее на уровне объектов, которые создаются, меняют свои свойства, взаимодействуют друг с другом и (в случае браузера) со страницей, в общем, живут.
Например, «пользователь», «меню», «компонент интерфейса»… При объектно‑ориентированном подходе каждый объект должен представлять собой интуитивно понятную сущность, у которой есть методы и данные.
Мы уже работали в ООП‑стиле, создавая объекты такого вида:
function User(name) {
this.sayHi = function() { alert( "Привет, я " + name );
};
}
var vasya = new User("Вася"); // создали пользователя vasya.sayHi(); // пользователь умеет говорить "Привет"
Здесь мы видим ярко выраженную сущность – User (посетитель). Используя терминологию ООП, такие конструкторы часто называют классами, то есть можно сказать "класс User ".
ООП – это наука о том, как делать правильную архитектуру. У неё есть свои принципы, например SOLID . По приёмам объектно‑ориентированной разработки пишут книги, к примеру:
Объектно‑ориентированный анализ и проектирование с примерами приложений. Гради Буч и др..
Приемы объектно‑ориентированного проектирования. Паттерны проектирования. Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес.
Здесь мы не имеем возможности углубиться в теорию ООП, поэтому чтение таких книг рекомендуется. Хотя основные принципы, как использовать ООП правильно, мы, всё же, затронем.
Do'stlaringiz bilan baham: |