Случился вот такой вот конфуз... решая простенькую задачку столкнулся со следующей проблемой. При нажатии Отмена в окне prompt выводился alert 'Access denied' хотя должен был выводиться 'Canceled'. проблема решилась изменением имени переменной с name на nam. Погуглил, но нигде не нашёл инфы что name зарезервированна или что-то ещё... Ниже текст задачи, ещё ниже оба варианта кода.
Как вы считаете отчего так?
Задача:
Напишите код, который будет запрашивать логин пользователя (prompt).
Если посетитель вводит 'admin', то спрашивать пароль, если нажал отмена (escape) — выводить 'Canceled', если вводит что-то другое — 'Access denied'. Пароль проверять так. Если введён пароль 'passw0rd', то выводить 'Welcome home!', иначе — 'Wrong password', при отмене — 'Canceled'.
Проблемный код
var name = prompt("Введите имя пользователя");
if (name=='admin')
{
var pass = prompt('Введите пароль');
if (pass == 'passw0rd')
{alert('Wellcome Home!')}
else if (pass==null)
{alert('Cancelled')}
else {alert('Wrong Password')}
}
else if (name==null)
{
alert('Cancelled')
}
else if (name!='admin'){
alert('Access danied')
}
Работающий как нужно
var nam = prompt("Введите имя пользователя");
if (nam=='admin')
{
var pass = prompt('Введите пароль');
if (pass == 'passw0rd')
{alert('Wellcome Home!')}
else if (pass==null)
{alert('Cancelled')}
else {alert('Wrong Password')}
}
else if (nam==null)
{
alert('Cancelled')
}
else if (nam!='admin'){
alert('Access danied')
}