Перехват ошибок

Введите число от 5 до 10:

id="In"
onclick="myFunction()
id="Out"
function myFunction() {
	var message, x;
	message = document.getElementById("Out");
	message.innerHTML = "";
	x = document.getElementById("In").value;
	try { 
		if(x == "") throw "пусто";
		if(isNaN(x)) throw "не число";
		x = Number(x);
		if(x < 5) throw "слишком мало";
		if(x > 10) throw "слишком много";
	}
	catch(err) {
		message.innerHTML = "Вы ввели " + err;
	}
	finally {
		document.getElementById("In").value = "Попробуй ещё!";
	}
}
try определяет блок кода, который во время выполнения будет проверяться на возникновение ошибок; если ошибка -> генерирует err
throw позволяет генерировать пользовательские ошибки err
catch определяет блок кода, который будет выполняться, если в блоке оператора try возникнет ошибка
finally позволяет выполнить код после операторов try и catch, независимо от результатов проверки

* Современные браузеры часто используют комбинацию JavaScript и встроенной HTML проверки, реализуемой при помощи предопределенных правил, заданных в HTML атрибутах:
<input id="demo" type="number" min="5" max="10" step="1">:

Error()

В JavaScript есть встроенный объект Error, который предоставляет информацию по возникшей ошибке

N err.name err.message describe
1 - RangeError возникает, если вы используете число, которое выходит за пределы диапазона допустимых значений
2 - ReferenceError возникает в том случае, когда вы используете (ссылаетесь) переменную, которая не была декларирована
3 - SyntaxError возникает, когда вы пытаетесь выполнить код с синтаксическими ошибками
4 - TypeError возникает, когда вы используете значение, выходящее за пределы диапазона ожидаемых типов
5 - URIError возникает, когда вы используете недопустимые символы в функциях URI

Влидация форм. Методы DOM ограничивающей проверки. ECMAScript 6 (2015)

Введите число от 10 до 100 с шагом 10

1 checkValidity() - возвращает true, если элемент ввода содержит корректные данные
2 setCustomValidity() - устанавливает свойство validationMessage для элемента ввода
document.getElementById("idc").validity.errName
N errName validity describe
1 rangeOverflow - значение элемента больше значения в атрибуте max
2 rangeUnderflow - значение элемента меньше значения в атрибуте min
3 stepMismatch - значение элемента неверно по атрибуту step (шаг)
4 typeMismatch - значение элемента неверно по атрибуту type
5 tooLong - значение элемента превышает значение атрибута maxLength (макс. длина)
6 valueMissing - не заполнено поле, обязательное к заполнению (у элемента с required нет значения)
7 patternMismatch - значение элемента не соответствует шаблону в атрибуте pattern
8 customError - задано пользовательское сообщение о валидности
9 valid - значение элемента валидно

"use strict";

Строгий режим Javascript. ECMAScript 5 (2009)

Цель директивы "use strict" — указать, что код должен выполняться в, так называемом, "строгом режиме"

Строгий режим декларируется путем добавления директивы "use strict"; в начало скрипта или функции

Ограничения в строгом режиме:

  1. нельзя использовать переменные без декларирования;
  2. нельзя использовать объекты без декларирования;
  3. нельзя удалять переменную (или объект):;
  4. нельзя удалять функцию;
  5. нельзя удалять неудаляемые свойства;
  6. одинаковые имена параметров запрещены;
  7. восьмеричные числовые константы запрещены;
  8. восьмеричные экранированные символы запрещены("\010");
  9. запись в свойства, предназначенные только для чтения, запрещено;
  10. запись в свойства, предназначенные только для возврата значения, запрещено;
  11. нельзя использовать в качестве имени переменной строку "eval", строку "arguments";
  12. нельзя использовать выражение with;
  13. функции eval() запрещено создавать переменные в области видимости, где она была вызвана;
  14. нельзя использовать будущие зарезервированные слова: implements, interface, let, package, private, protected, public, static, yield;