Difference between indexOf() and search() in JavaScript

This post is published to differentiate between the two search methods of JavaScript, which are:

indexOf() vs. search() in JavaScript

The only two differences between these two are:

Both methods return the index of the first character of the specified value or substring. Otherwise, it returns -1 if the specified value does not exist in the specified string. For example:

HTML with JavaScript Code
<!DOCTYPE html>
<html>
<body>

   <p>----Using indexOf()----<br>
      The index of 'Fun' = <span id="mySpan1"></span></p>
   <p>----Using search()----<br>
      The index of 'Fun' = <span id="mySpan2"></span></p>

   <script>
      let x = "JavaScript is Fun. Is not it?";
      let y = x.indexOf("Fun");
      document.getElementById("mySpan1").innerHTML = y;

      let a = "JavaScript is Fun. Is not it?";
      let b = a.search("Fun");
      document.getElementById("mySpan2").innerHTML = b;
   </script>
   
</body>
</html>
Output

----Using indexOf()----
The index of 'Fun' =

----Using search()----
The index of 'Fun' =

When is indexOf() useful?

The indexOf() method is useful when we need to search for a value from a specified position. For example:

HTML with JavaScript Code
<!DOCTYPE html>
<html>
<body>

   <p id="myPara"></p>

   <script>
      let mystr = "Javascript is fun, is not it?";
      let pos = mystr.indexOf("is", 15);

      document.getElementById("myPara").innerHTML = pos;
   </script>
   
</body>
</html>
Output

This is the only scenario where the indexOf() method comes into play when talking about searching for the position of a specified value in a string. Otherwise, the search()  method is prominent everywhere.

JavaScript Online Test


« Previous Tutorial Next Tutorial »


Liked this post? Share it!