Невозможно понять, почему не работает следующая функция JavaScript - PullRequest
0 голосов
/ 14 февраля 2020

Я новичок в Java Сценарий и не могу понять, почему не работает следующая функция, что я здесь не так делаю? Это побуждает меня ввести значение пола var, но как только я вхожу, оно больше не выполняется. Ниже приведен код JavaScript, который я пытаюсь запустить.

var gender = prompt('What is your gender..?');

function name(fname = 'Sayantan', mname, lname = 'Choudhury') {
  if (gender == male) {
    document.write('Hello Mr. ' + fname + ' ' + mname + ' ' + lname + '<br/>');
  } else {
    document.write('Hello Mrs. ' + fname + ' ' + mname + ' ' + lname + '<br/>');
  }
}

name('Mridula', 'Dutta', 'Chowdhury');
name('Mridula');

Ответы [ 3 ]

0 голосов
/ 14 февраля 2020

Внимание в вашем коде gender == male: является ли мужчина переменной или мужчина является строкой 'male'?

Я предлагаю вам написать строку 'male', потому что Я не вижу декларации the variable male. Поэтому в этом случае вы должны написать код: gender === "male"

Более того, я не вижу и объявления the variable gender в вашем коде. Я рекомендую вам обратить внимание на объявление имен идентификаторов (переменных и функций) в коде. Пример: чтобы вы могли уважать camelCase . Это хорошая практика!

Пример:

function fncCheckName (name, mName, lName) { }

Вы также можете посмотреть мой ответ в другом посте: { ссылка }

0 голосов
/ 14 февраля 2020

male здесь не является переменной, поэтому вы хотите сравнить ее со строкой, такой как 'male' Вы также должны проверить, преобразовав пол в нижний регистр, чтобы он мог поддерживать регистр без учета регистра.

также есть еще одна проблема, если вы не передадите mname, вы увидите неопределенное между именем и фамилией.

var gender = prompt('Gender');
function name(fname = 'Sayantan', mname = '', lname = 'Choudhury') {
  let title = 'Mrs'
  if (gender.toLowerCase() === 'male') {
    title = 'Mr';
  }
  document.write('Hello'+ title + '. ' + fname + ' ' + mname + (mname ? ' ' : '') + lname + '<br/>')
}

name('Mridula', 'Dutta', 'Chowdhury');
name('Mridula');
0 голосов
/ 14 февраля 2020

Если вы используете мужской в ​​качестве мужчины вместо «мужской» javascript считает, что мужчина - это переменная, объявленная где-то в вашем коде, и выдает ошибку, потому что она не существует (по крайней мере, в вашем случае), но то, что вы вводите Внутренняя подсказка хранится в переменной пола и содержит введенную вами строку «мужчина», поэтому условие должно быть:

if(gender === 'male') 

или

if(gender === 'female') 

=== сравнивает тип по со значением, если вы хотите только сравнить значение, вы можете использовать ==.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...