Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   переменая "name" (https://javascript.ru/forum/misc/72868-peremenaya-name.html)

realing29 03.03.2018 15:10

переменая "name" баг?
 
:lol: Почему не работает условие? помечено * в коде
Стоит написать "Name" и все работает, было бы очень интересно узнать. При этом "name" не является зарезервированным jscript, как можно предположить. Дело даже не Plunker и браузере. Интересно бы узнать у специалистов.

<script>
    'use strict';
    var name = prompt('кто пришел?', '');

    if (name == 'админ') {

      var pass = prompt('введите пароль', '');

      if (pass == 'черный властелин') {
        alert('привет хозяин');
      } else if (pass == null) {
        alert('вход отменен');
      } else {
        alert('пароль неверен');
      }

    } else if (name == null) { //  (*)
      alert('вход отменен');
      
    } else {
      
      alert('я вас не знать!!');
      
    }
  </script>

Vlad777 03.03.2018 15:20

в серии else if последним всегда идет else, а у вас else if затем else затем опять else if. Плюс у вас идет проверка name на админ, но если пришел не админ вроде как undefined а не null, т.что 2 последние проверки на нуль и я вас не знать делают одно и тоже. думаю что из-за этого....

realing29 03.03.2018 15:53

Отнюдь нет проверьте сами
 
При проверке когда мы нажимаем отмена, возвращается значение null. И если написать переменную 'name' с большой буквы то все работает правильно. Дело в самой переменной "name" написанной с маленькой буквы, при чем если поменять первую букву переменой все опять работает. Так в чем дело?:lol:

laimas 03.03.2018 15:59

Цитата:

Сообщение от realing29
При этом "name" не является зарезервированным jscript, как можно предположить.

https://www.w3schools.com/js/js_reserved.asp


var name, pswrd;
    if(name = prompt('Name?')) {
        if(name=='as') {
            if(pswrd = prompt('Secret?')) {
                if(pswrd=='12') {
                    alert('Welcome as with password 12')
                } else alert('No')
            } else alert('Cancel')
        } else alert('No')
    } else alert('Cancel')


Только проверять логин и пароль клиентом, это только ради развлечения.

realing29 03.03.2018 16:33

Спасибо я ошибался
 
:yes:


Часовой пояс GMT +3, время: 16:49.