What is the correct way to check for string equality in JavaScript ?
In JavaScript, there are different ways to check for string equality depending on what you’re trying to achieve. A few methods are explained below:
- Using the triple equals (===) operator
- Using the double equals (==) operator
- Using the String.prototype.localeCompare() method
- Using the String.prototype.match() method
Using the triple equals (===) operator: This operator checks for both value and type equality. it can be also called as strictly equal and is recommended to use it mostly instead of double equals
Example:
Javascript
const str1 = 'geeks for geeks' ; const str2 = 'geeks for geeks' ; if (str1 === str2) { console.log( 'The strings are equal ' ); } else { console.log( 'The strings are not equal' ); } |
Output:
The strings are equal
Using the double equals (==) operator: This operator checks for value equality but not type equality.
Example:
Javascript
const numStr = '42' ; if (numStr == 42) { console.log( 'The values are equal' ); } else { console.log( 'The values are not equal' ); } |
Output:
The strings are equal
Using the String.prototype.localeCompare() method: This method compares two strings and returns a value indicating whether one string is less than, equal to, or greater than the other in sort order.
Example:
Javascript
const str1 = 'hello' ; const str2 = 'geeks for geeks' ; const comparison = str1.localeCompare(str2); if (comparison === 0) { console.log( 'The strings are equal' ); } else { console.log( 'The strings are not equal' ); } |
Output:
The strings are not equal
Using the String.prototype.match() method: This method tests a string for a match against a regular expression and returns an array of matches.
Example:
Javascript
const str1 = 'hello geeks' ; const str2 = 'hello geeks' ; const match = str2.match(str1); if (match) { console.log( 'The strings are equal' ); } else { console.log( 'The strings are not equal' ); } |
Output:
The strings are equal
Please Login to comment...