Мы хотим сделать функцию, которая будет оповещать пользователя о неправильно переданных данных. То есть пользователь не будет получать из функции никаких данных, вообще.
Пускай у нас будет простая функция, которая складывает два числа вместе и возвращает результат сложения.
function sumAB(a, b){ return a + b }
Как нам сделать так, чтобы функция выдавала ошибку, если передан только один параметр? Предположим пользователь забыл передать второй параметр, а мы хотим ему об этом напомнить.
В решении вопроса нам поможет конструктор ошибок Error(). В него мы будем передавать строку — «Вы забыли передать число»
Добавим языковую конструкцию if else в тело нашей функции
function sumAB(a, b){ if(a == undefined || b == undefined){return new Error("Вы забыли передать число")} else{return a + b} }
Проверяем работу на 3 вызовах:
sumAB() sumAB(4) sumAB(4,8)
Вывод в консоль браузера
Первые два вызова функции сообщили в консоль браузера об ошибке и выдали «подсказку».
Третий вызов прошёл без ошибок т. к. были переданы два параметра.
Итог
Эту функцию можно сделать ещё более отзывчивой и научить её проверять тип данных передаваемых параметров. Например можно научить преобразовывать строки в числа и производить суммирование (если это не конкатенация).
Информационные ссылки
Стандарт ECMAScript — Раздел «20.5 Error Objects» — https://tc39.es/ecma262/#sec-error-objects