Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.03.2018, 15:10
Новичок на форуме
Отправить личное сообщение для realing29 Посмотреть профиль Найти все сообщения от realing29
 
Регистрация: 22.02.2018
Сообщений: 4

переменая "name" баг?
Почему не работает условие? помечено * в коде
Стоит написать "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>

Последний раз редактировалось realing29, 03.03.2018 в 15:15. Причина: больше инфы в заголовок
Ответить с цитированием
  #2 (permalink)  
Старый 03.03.2018, 15:20
Аспирант
Отправить личное сообщение для Vlad777 Посмотреть профиль Найти все сообщения от Vlad777
 
Регистрация: 01.03.2018
Сообщений: 37

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

Последний раз редактировалось Vlad777, 03.03.2018 в 15:29.
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2018, 15:53
Новичок на форуме
Отправить личное сообщение для realing29 Посмотреть профиль Найти все сообщения от realing29
 
Регистрация: 22.02.2018
Сообщений: 4

Отнюдь нет проверьте сами
При проверке когда мы нажимаем отмена, возвращается значение null. И если написать переменную 'name' с большой буквы то все работает правильно. Дело в самой переменной "name" написанной с маленькой буквы, при чем если поменять первую букву переменой все опять работает. Так в чем дело?
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2018, 15:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от 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')


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

Последний раз редактировалось laimas, 03.03.2018 в 16:17.
Ответить с цитированием
  #5 (permalink)  
Старый 03.03.2018, 16:33
Новичок на форуме
Отправить личное сообщение для realing29 Посмотреть профиль Найти все сообщения от realing29
 
Регистрация: 22.02.2018
Сообщений: 4

Спасибо я ошибался
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменая переменной или имя функции из строки kostyanet Events/DOM/Window 18 18.02.2014 13:29
Загрузка файла в js как переменая xaknik Общие вопросы Javascript 1 19.11.2012 21:18