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,则函数不能按预期工作有人可以告诉我为什么?
让我举一个例子说明一下
假设我们已经覆盖了满是白色和黑色大理石的盒子。并声明:“盒子里只包含白色大理石”。你怎么能确定这个陈述是真的?嗯......你一个接一个地选择弹珠(在for循环中)并检查它们是否都是白色的。如果你找到一个不是(!==),你知道该声明是错误的。你的功能就是这样做的。
你想要它的方式 - 通过切换操作符和真值 - 它会像这样:“我会选择一个大理石,如果它是白色的(===),我知道这个说法是真的。”现在......这是真的吗?不,不是。
得到它了? (在你的情况下,你没有检查黑白大理石,但字符是否相等)