Javascript 如果我替换false和!==使用true和===函数将给出意外的结果。有什么解释吗? 函数回文(str){ var len=str.length; 对于(变量i=0;i

Javascript 如果我替换false和!==使用true和===函数将给出意外的结果。有什么解释吗? 函数回文(str){ var len=str.length; 对于(变量i=0;i,javascript,palindrome,Javascript,Palindrome,如果我替换!==在for循环内部为false,在for循环外部为true,在for循环内部为false,在for循环外部为true,在for循环内部为false,在for循环内部为false,在for循环内部为true,在for循环外部为true,在for循环外部为false,函数不能按预期工作。有人能告诉我为什么吗 让我用一个例子来说明 假设我们已经盖满了盒子,里面装满了白色和黑色的大理石。还有一句话:“盒子里只有白色的弹珠”。你怎么能确定这句话是真的?好。。。你一个接一个地挑选弹珠(在一个f

如果我替换!==在for循环内部为false,在for循环外部为true,在for循环内部为false,在for循环外部为true,在for循环内部为false,在for循环内部为false,在for循环内部为true,在for循环外部为true,在for循环外部为false,函数不能按预期工作。有人能告诉我为什么吗

让我用一个例子来说明

假设我们已经盖满了盒子,里面装满了白色和黑色的大理石。还有一句话:“盒子里只有白色的弹珠”。你怎么能确定这句话是真的?好。。。你一个接一个地挑选弹珠(在一个for循环中),并检查它们是否都是白色的。如果你发现不是(!==),你就知道是假的。你的功能就是这样做

按照您所希望的方式—使用切换运算符和真值—它将如下所示:“我将选择一个大理石,如果它为白色(==),我现在知道该语句为。”。。。这是真的吗?不,不是


明白了吗?(在您的情况下,您不是在检查黑白大理石,而是检查字符是否相等)

让我用一个例子来说明

假设我们已经盖满了盒子,里面装满了白色和黑色的大理石。还有一句话:“盒子里只有白色的弹珠”。你怎么能确定这句话是真的?好。。。你一个接一个地挑选弹珠(在一个for循环中),并检查它们是否都是白色的。如果你发现不是(!==),你就知道是假的。你的功能就是这样做

按照您所希望的方式—使用切换运算符和真值—它将如下所示:“我将选择一个大理石,如果它为白色(==),我现在知道该语句为。”。。。这是真的吗?不,不是


明白了吗?(在您的情况下,您不是在检查黑白大理石,而是检查字符是否相等)

写出确定回文的算法。想一想在for lop中有一个exit子句的意图是什么(实际上是在整个函数中)。当两个字母匹配或两个字母不匹配时,是否停止检查匹配?PS.返回语句从函数返回,而不是从if块返回。因此,使用
==
和true,您可以循环查找假结果,并在第一次匹配时返回true。使用
==
和false循环匹配项,第一个不匹配项返回false。写出确定回文的算法。想一想在for lop中有一个exit子句的意图是什么(实际上是在整个函数中)。当两个字母匹配或两个字母不匹配时,是否停止检查匹配?PS.返回语句从函数返回,而不是从if块返回。因此,使用
==
和true,您可以循环查找假结果,并在第一次匹配时返回true。使用
==
和false循环匹配项,并为第一个不匹配项返回false。
function palindrome(str) {
    var len = str.length;
    for ( var i = 0; i < Math.floor(len/2); i++ ) {
       if (str[i] !== str[len - 1 - i]) {
          return false;
        }
     }
     return true;
   }