【问题标题】:Unable to understand why the following JavaScript function is not working无法理解为什么以下 JavaScript 函数不起作用
【发布时间】:2020-02-14 09:53:02
【问题描述】:

我是 Java Script 的新手,我无法理解为什么以下功能不起作用,我在这里做错了什么?它提示我输入 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');

【问题讨论】:

  • male 不是变量,它应该用引号括起来,例如 if (gender == 'male')
  • 性别 == '男'

标签: javascript function


【解决方案1】:

male 在这里不是变量,所以你想将它与像'male' 这样的字符串进行比较 您还应该通过将性别转换为小写来检查,以便它可以支持不区分大小写。

还有一个问题,如果你不传递 mname,你会在名字和姓氏之间看到 undefined。

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');

【讨论】:

    【解决方案2】:

    如果您使用男性作为男性而​​不是“男性”,javascript 认为男性是在代码中某处声明的变量并抛出错误,因为它不存在(至少在您的情况下),但是您在提示符中输入的内容存储在性别变量中,它包含您输入的字符串“男性”,因此条件应该是:

    if(gender === 'male') 
    

    if(gender === 'female') 
    

    ===比较类型和值,如果你只想比较值可以使用==

    【讨论】:

      【解决方案3】:

      注意你的代码gender == malema​​le是一个变量还是male是一个字符串'male'?

      我建议你写字符串'male',因为我没有看到the variable male 的声明。所以在这种情况下,你必须编写代码:gender === "male"

      此外,我也没有在您的代码中看到the variable gender 的声明。我建议您注意代码中标识符名称(变量和函数)的声明。示例:因此您可以尊重camelCase。这是个好习惯!

      一个例子:

      function fncCheckName (name, mName, lName) { }
      

      您也可以在另一篇文章中查看我的答案:https://stackoverflow.com/a/60037641/4386148

      【讨论】:

        猜你喜欢
        • 2018-09-23
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多