【问题标题】:if statement in Javascript functionJavascript 函数中的 if 语句
【发布时间】:2015-10-23 09:13:10
【问题描述】:

我是 Javascript 的初学者 无论我的变量的值如何,我总是得到真实的返回, 如果 a 和 b 都是偶数,它应该返回 true,否则返回 false。 感谢您的帮助。

https://repl.it/9nH/1675

var a = 4;
var b= 5;
function areBothEqual (a, b) {
    if(a===b) {
        return true;
    }else {
        return false
        
    }
}

var result = areBothEqual();
document.write(result)

【问题讨论】:

  • 如果你在调用函数时没有传入你定义的 a 和 b 值,你就是在比较 null 和 null
  • 提示:console.log(a, b) 在你的函数中。
  • (a,b) 定义为函数的参数可以防止在函数中使用全局变量,因为这是您定义函数显式获取的内容的地方(通常要避免使用全局变量,所以耶! ) 查看其他 cmets re: 适当的格式。
  • 非常感谢,这很明显,我很惭愧自己没有找到这个

标签: javascript function if-statement


【解决方案1】:

你没有将参数传递给你的函数:

areBothEqual(a,b)

你有:

areBothEqual()

干杯

【讨论】:

    【解决方案2】:

    问题是您在function areBothEqual (a, b) 行中请求参数ab,但它们实际上从未被传递。只需将(a, b) 替换为空括号(),因为您可以使用之前定义的ab

    var a = 4;
    var b= 5;
    function areBothEqual() {
        if(a===b) {
            return true;
        } else {
            return false
    
        }
    }
    areBothEqual()
    

    【讨论】:

    • 不要鼓励新手使用全局变量,教他正确传递参数。
    • @Barmar 如果他们总是想比较两个特定值,他们可能想要使用全局变量,但另一个答案突出了替代解决方案。
    • 我并不是说永远不要使用全局变量,而是初学者使用太多,因为他们不懂函数。它们只应在必要时使用。
    【解决方案3】:
    var a = 4;
    var b= 5;
    function areBothEqual (a, b) {
        console.log(a);
        console.log(b);
        if(a===b) {
            return true;
        }else {
            return false
    
        }
    }
    areBothEqual();
    

    它们是“未定义的”,两者都是相等的......

    【讨论】:

    • 如何解决问题?
    • 这不是问题。它告诉你他们是平等的。 '未定义' === '未定义'
    • 但他显然想比较变量ab。向他展示如何正确地做到这一点,而不仅仅是解释他的代码为什么不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    相关资源
    最近更新 更多