For some reason, null instead of “not specified” appears in the name check. How to fix it?
-
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 -
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
1 Answers
Your Answer
To place the code, please use CodePen or similar tool. Thanks you!