confirm()
- Что такое confirm()
- Синтаксис
- Что возвращает confirm()
- confirm() в условии
- Сохранить результат в переменную
- confirm(), alert() и prompt()
- Частые ошибки
confirm() - это встроенная функция браузера, которая показывает модальное окно с вопросом и двумя кнопками: ОК и Отмена.
С ее помощью можно спросить пользователя, согласен он с действием или нет. Например: удалить запись, перейти дальше, подтвердить выбор или продолжить выполнение кода.
Что такое confirm()
confirm() похож на alert(), потому что тоже показывает модальное окно. Но в отличие от alert(), он не просто выводит сообщение, а ждет выбора пользователя.
confirm('Вы хотите продолжить?');
После выполнения этого кода браузер покажет окно с текстом и двумя кнопками. Пользователь может нажать ОК или Отмена.
Сам по себе вызов confirm() уже покажет окно, но чаще всего результат нужно сохранить или сразу проверить в условии.
Синтаксис
Общая запись выглядит так:
confirm(message);
message - это текст вопроса, который увидит пользователь.
Простой пример:
confirm('Вы изучаете JavaScript?');
Текст вопроса записывается в кавычках. В конце инструкции, как обычно, можно поставить точку с запятой.
Что возвращает confirm()
Главная особенность confirm() - он возвращает логическое значение.
- если пользователь нажал ОК, вернется
true; - если пользователь нажал Отмена, вернется
false.
Проверим это через консоль:
let answer = confirm('Продолжить обучение?');
console.log(answer);
Если нажать ОК, в консоли будет:
true
Если нажать Отмена, в консоли будет:
false
Это удобно, потому что дальше результат можно использовать в условиях.
confirm() в условии
Чаще всего confirm() используют вместе с if. Если пользователь согласился, выполняется один код. Если отказался - другой.
if (confirm('Вы хотите продолжить?')) {
alert('Отлично, продолжаем!');
} else {
alert('Хорошо, остановимся здесь.');
}
В этом примере confirm() сразу стоит внутри условия.
Если пользователь нажмет ОК, условие получит true и выполнится первый блок кода.
Если пользователь нажмет Отмена, условие получит false и выполнится блок else.
Сохранить результат в переменную
Результат confirm() можно сначала записать в переменную, а потом использовать.
let isReady = confirm('Готовы начать урок?');
if (isReady) {
console.log('Пользователь готов');
} else {
console.log('Пользователь пока не готов');
}
Такой вариант удобнее, когда результат нужно использовать несколько раз или когда хочется сделать код понятнее.
Переменную можно назвать по смыслу: isReady, isConfirmed, isAdult, hasAccess. Такие имена обычно читаются как вопрос и хорошо подходят для значений true или false.
confirm(), alert() и prompt()
Эти три функции похожи тем, что показывают модальные окна браузера. Но задачи у них разные.
alert() просто показывает сообщение:
alert('Привет!');
prompt() показывает поле ввода и возвращает текст пользователя:
let name = prompt('Введите имя');
confirm() задает вопрос и возвращает true или false:
let answer = confirm('Вы согласны?');
Если нужно просто сообщить - подойдет alert(). Если нужно получить текст - prompt(). Если нужно получить согласие или отказ - confirm().
Частые ошибки
1. Ожидание получить текст
let answer = confirm('Введите ваше имя');
confirm() не дает пользователю поле для ввода. Он возвращает только true или false. Если нужен текст, используйте prompt().
2. Результат не сохранен
confirm('Вы согласны?');
console.log(answer);
В этом примере переменной answer нет. Правильно:
let answer = confirm('Вы согласны?');
console.log(answer);
3. Сравнение с текстом
let answer = confirm('Продолжить?');
if (answer === 'ОК') {
alert('Продолжаем');
}
Такой код не сработает как ожидается, потому что confirm() возвращает не строку ‘ОК’, а значение true или false.
Правильно:
let answer = confirm('Продолжить?');
if (answer) {
alert('Продолжаем');
}
4. Неправильно написано имя функции
Confirm('Вы согласны?');
JavaScript чувствителен к регистру. Правильно:
confirm('Вы согласны?');
Что дальше
confirm() помогает получить простой ответ пользователя: да или нет. Для первых программ этого достаточно, чтобы научиться принимать решение в коде.
Дальше разберем typeof - оператор, который помогает узнать тип значения в JavaScript.