如果我替换false并且!==使用true和===,则该函数会产生意外结果。任何解释?

问题描述 投票:0回答:1
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;
   }

如果我在for循环中使用===和true替换!==和false,并且使用false替换为true,则函数不能按预期工作有人可以告诉我为什么?

javascript palindrome
1个回答
1
投票

让我举一个例子说明一下

假设我们已经覆盖了满是白色和黑色大理石的盒子。并声明:“盒子里只包含白色大理石”。你怎么能确定这个陈述是真的?嗯......你一个接一个地选择弹珠(在for循环中)并检查它们是否都是白色的。如果你找到一个不是(!==),你知道该声明是错误的。你的功能就是这样做的。

你想要它的方式 - 通过切换操作符和真值 - 它会像这样:“我会选择一个大理石,如果它是白色的(===),我知道这个说法是真的。”现在......这是真的吗?不,不是。

得到它了? (在你的情况下,你没有检查黑白大理石,但字符是否相等)

© www.soinside.com 2019 - 2024. All rights reserved.