在比较两个唯一字符串时,indexOf的结果为true

时间:2017-03-05 06:25:47

标签: javascript

我希望这会返回false,因为第一个字符串是"通过/失败"传递给IndexOf的字符串是"数字规范"。

我不明白这个功能是如何工作的?我认为它会检查字符串A是否包含在字符串B中?

unexpected behavior

2 个答案:

答案 0 :(得分:1)

indexOf()方法返回字符串中第一次出现指定值的位置。如果要搜索的值永远不会发生,则此方法返回-1。

例如:

var str = "Hello world, welcome to the universe.";
var n = str.indexOf("welcome"); //output 13

Similiaryly:

var str = "Hello world";
    var n = str.indexOf("welcome"); //output -1

答案 1 :(得分:1)

您可能打算使用"".contains,它返回一个上/下布尔值而不是匹配索引:

"abc".includes("b"); // == true;
"abc".includes("x"); // == false;

由于js中的-1是" truthy",您的indexOf()用法不会作为条件使用。