Упражнения
№ 1
Рассмотрите такой код:
var a = 10;
var b = 12;
var c = a() + b;
Есть ли тут ошибки? Если да, то какого типа?
SyntaxError
на строке 1ReferenceError
на строке 2TypeError
на строке 3. Ошибок нет
№ 2
Возможно ли иметь все четыре типа ошибок в одной строке кода?
Нет! Одна строка — одна ошибка, максимум.
Да! Программирование — это здорово!
№ 3
Рассмотрите такой код:
var func = () => {
var a = 120.323;
return 10 * a * b;
};
Есть ли тут ошибки? Если да, то какого типа?
TypeError
на строке 2ReferenceError
на строке 3.SyntaxError
на строке 4 Ошибок нет
№ 4
Программа не может работать при возникновенииReferenceError
, но может работать при возникновенииTypeError
. Правильно?
Нет, не правильно. Программа не может работать ни в одном из случаев..
Правильно!
Нет, не правильно. Программа может работать в обоих случаях.
№ 5
Представьте что мы выполняем скрипт, в котором есть только одна строчка:
console.log(sum(5, 10));
Что будет выведено на экран?
Сообщение о том что функция
sum
не существует.
15
undefined
№ 6 Summary
Обычно вам нужно избегать ошибок, но в этом упражнении вы будете порождать ошибки. Это поможет вам понять, какие типы ошибок возникают в разных ситуациях, и привыкнуть распознавать их в будущем.
Вы будете работать в двух файлах —reference.js
иtype.js
. Ваша задача — породить две ошибки внутри специально созданных функций.
Создайте функциюreference
.
Код внутри функции должен породить ошибку типаReferenceError
.
Вспомните, чтоReferenceError
возникает, когда используется несуществующий идентификатор (имя). Например, если ваша функция возвращает значение константы, но такой константы не существует. Или в каком-нибудь выражении (фрагмент кода, который вычисляется в значение, как формула) используется неизвестный идентификатор.
Создайте функциюtype
.
Код внутри функции должен породить ошибку типаTypeError
.
Вспомните, чтоTypeError
возникает, когда вы используете неправильный тип. Например, если вы пытаетесь вызвать численную константу как функцию.
ВАЖНО
Ошибки должны генерироватьсявнутри функций. То есть, сначала создайте функции с именамиreference
иtype
, а внутри тела функций уже пишите код, который будет вызывать ошибки.