For some reason, null instead of “not specified” appears in the name check. How to fix it?

  • 0
    For some reason, null instead of "not specified" appears in the name check. How to fix it?

    https://codepen.io/MariaRia/pen/rNLaZzw

    var name = prompt("Введите Ваше имя");
    
    do {if ( parseFloat(name) ) {
      alert("Не вводите числа в имя!" ),
      name = prompt("Введите имя еще раз");  
      } 
    } while( parseFloat(name) )
    if (name == null || name == undefined) {
      name = "не указано";
    }
    
    
    var surname = prompt("Введите Вашу фамилию");
    
    do {if ( parseFloat(surname) ) {
      alert("Не вводите числа в фамилию!" ),
      surname = prompt("Введите фамилию еще раз");  
      } 
    } while( parseFloat(surname) )
    if (surname == null || surname == undefined) {
      surname = "не указано";
    }
    
    var patronymic = prompt("Введите Ваше отчество");
    
    do {if ( parseFloat(patronymic) ) {
      alert("Не вводите числа в отчество!" ),
      patronymic = prompt("Введите отчество еще раз");   } 
    } while( parseFloat(patronymic) )
     if (patronymic == null || patronymic == undefined) {
      patronymic = "не указано";
    }
    
    var adult = "";
    var pension = ""; 
    
    var gender = confirm("Вы мужчина??");
    if (gender) {
      var gender = "мужской";  
    } else {
      gender = "женский";     
    }
    
    var ageYear = prompt( "Введите Ваш возраст ( в годах)" );
    ageYear = parseInt(ageYear);
    
    if ( isNaN(ageYear) ) {
      alert("Вы неправильно ввели ваш возраст!" ),
      ageYear = prompt("Введите Ваш возраст еще раз (в годах)");
      }
    
      do {if (ageYear >150) {
      alert("Введено слишком большое значение возраста!"),
      ageYear = prompt("Введите Ваш возраст еще раз (в годах)");  
    } else if (ageYear < 3 && ageYear >= 0) {
      alert("Введено слишком маленькое значение возраста!"),
      ageYear = prompt("Введите Ваш возраст еще раз (в годах)");
      } else if (ageYear < 0) {
      alert("Введено отрицательное значение возраста!"),
      ageYear = prompt("Введите Ваш возраст еще раз (в годах)");
      }
    } while(ageYear >150 || ageYear < 3)
    
      
    if (ageYear > 18 && ageYear >= 60) {
      adult = "Вы уже совершеннолетний(ая)"; 
      pension = "да";  
    } else if (ageYear > 18 && ageYear < 60) {
      adult = "Вы уже совершеннолетний(ая)"; 
      pension = "нет";     
    } else if (ageYear == 18) {
      adult= "Вам 18 лет";
      pension = "нет";
    } else if (ageYear < 18) {
      adult = "Вы еще несовершеннолетний(ая)"; 
      pension = "нет";
    } 
    
    
    var ageDays = ageYear * 365;
    ageDays = parseFloat(ageDays);
    
    if ( isNaN(ageDays) ) {
      pension = "неизвестно";
    }
    
    var result = "Ваше ФИО: " + " " + surname + " " + name + " " + patronymic  + "\n" + "Ваш возраст в годах: " + 
    ageYear + "\n" + "Ваш возраст в днях: " + ageDays + "\n" + adult + "\n" + "Ваш пол: " + gender + 
    "\n" + "Вы на пенсии: " + pension;
      
    alert(result);
    JavaScript Mason Ponce, Dec 19, 2019

  • 1 Answers
  • 0
    Try to change the condition, otherwise it will never be fulfilled for you) CODPEN



    And I will add, prompt is unlikely to be null or undefined, because it is logical that there is a line for input, so there cannot be null. And of course, if you didn't write anything there, then it is empty, BUT IT IS)))

    name === null || name === undefined There is no sense from these lines



    Also, to check the type of a variable, use

    const a = 50;
    const b = '50';
    console.log(typeof a, typeof b);
    Anonymous

Your Answer
To place the code, please use CodePen or similar tool. Thanks you!