不能理解为什么这个函数返回false如果我改变参数值

not able to understand why this function return false if i change parameter value

本文关键字:如果 改变 参数 false 返回 为什么 能理解 函数 不能      更新时间:2023-09-26

我在这里学习java脚本,无法理解这个示例,如果我将ninja.yell(4)更改为任何值,例如ninja.yell(5)或3,则返回false。

var ninja = {
    yell: function(n) {
        return n > 0 ? ninja.yell(n - 1) + "a" : "hiy"; 
    }
}; 
console.log(ninja.yell(4) == "hiyaaaa", "A single object isn't too bad, either.");

如果我这样使用function

var ninja = {
    yell: function(n) {
        return n > 0 ? ninja.yell(n - 1) + "a" : "hiy"; 
    } 
}; 
console.log(ninja.yell(4));

它打印了一次"hiy"和四次"a",就像"hiyaaaa",我真的很困惑,请帮助谢谢。

函数返回hiy后面跟着一个数等于该数的a s。你把它和hiyaaaa比较。

如果更改a s的数量,则比较将不匹配

ninja.yell(4) == "hiyaaaa"是一个比较,看起来字符串"hiyaaaa"会根据你发送给方法的数字而改变。

ninja.yell(4) == "hiyaaaa"的字面意思是"ninja.yell(4)是否等于hiyaaaa ?"

如果你把它改成5,返回值实际上有5个a,所以它不会等于"hiyaaaa"所以你得到false