Задать вопрос
@M_Master

Почему-то в проверке имени выскакивает null вместо «не указано». Как это исправить?

Почему-то в проверке имени выскакивает null вместо "не указано". Как это исправить?

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);
  • Вопрос задан
  • 227 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@Steppp
Попробуй изменить условие, а то оно у тебя никогда не выполнится) КОДПЕН

И дополню, prompt врядли будет null или undefined, ведь логично, стока для ввода есть, значит null не может быть. Ну и конечно если ты туда ничего не записал, значит она пустая, НО ОНА ЕСТЬ)))
name === null || name === undefined Смысла от этих строк нету

И еще, чтобы проверить какой тип у переменной, используй
const a = 50;
const b = '50';
console.log(typeof a, typeof b);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы