Введите число от 5 до 10:
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">:
В JavaScript есть встроенный объект Error, который предоставляет информацию по возникшей ошибке
N | err.name | err.message | describe |
---|---|---|---|
1 | - RangeError возникает, если вы используете число, которое выходит за пределы диапазона допустимых значений | ||
2 | - ReferenceError возникает в том случае, когда вы используете (ссылаетесь) переменную, которая не была декларирована | ||
3 | - SyntaxError возникает, когда вы пытаетесь выполнить код с синтаксическими ошибками | ||
4 | - TypeError возникает, когда вы используете значение, выходящее за пределы диапазона ожидаемых типов | ||
5 | - URIError возникает, когда вы используете недопустимые символы в функциях URI |
Введите число от 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" — указать, что код должен выполняться в, так называемом, "строгом режиме"
Строгий режим декларируется путем добавления директивы "use strict"; в начало скрипта или функции
Ограничения в строгом режиме: