Вопрос по, возможно, зарезервированным именам...
Случился вот такой вот конфуз... решая простенькую задачку столкнулся со следующей проблемой. При нажатии Отмена в окне 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') } |
Цитата:
var name = prompt("Введите имя пользователя"); alert(typeof(name)); if (name=='admin'){ var pass = prompt('Введите пароль'); if (pass == 1) { alert('Wellcome Home!'); } else { alert((pass=='null')? 'Cancelled': 'Wrong Password'); }; } else { alert((name=='null')? 'Cancelled': 'Access danied'); }; |
Me name is Yaponcik. I'm hoodlum from ussr.
|
Часовой пояс GMT +3, время: 00:17. |