gpt4 book ai didi

javascript - 函数中的 boolean 运算符混淆

转载 作者:行者123 更新时间:2023-11-28 18:00:38 24 4
gpt4 key购买 nike

我编写了一个函数来查找传递的字母范围中丢失的字母并返回它。如果所有字母都出现在范围内,则应返回未定义。

这是我的代码:

function fearNotLetter(str) {
for (var i = 0; i < str.length;i++ ) {
if(str.charCodeAt(i+1) - str.charCodeAt(i)>1) {
return String.fromCharCode(str.charCodeAt(i)+1);
}
}
return undefined;
}
fearNotLetter("bcd");

现在这段代码在这里可以工作,但之前,在 if 语句 中,我使用 !== 而不是 > ,并且函数不适用于我应该得到 undefined 的情况。相反,我得到了一个字母或一些符号。

为什么会发生这种情况,为什么上面的代码可以正常工作?

最佳答案

在循环的最后一次迭代中,这一行:

if(str.charCodeAt(i+1) - str.charCodeAt(i)>1) {

...比较NaN与字符串中的最后一个字符,因为 str.charCodeAt(i+1)正在尝试获取最后一个字符之外的代码。

NaN > anyNumber总是false ,但是NaN !== anyNumber总是true .

您可能想在 < str.length - 1 处停止循环.

关于javascript - 函数中的 boolean 运算符混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43596329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com