# Checking if String contains Substring

You can now use the ES6 includes() method to check if a strings contains a substring. It will determine whether that string exists in another string, returning either true or false 🤓

const word = 'sunny';

// Old way
word.indexOf('sun') !== -1; // true

// ✅ ES6 way
word.includes('sun'); // true

# Case-Sensitive

Note the comparison is case-sensitive.

'sunny'.includes('SUN'); // false

'sunny'.includes('Sun'); // false

# Array includes()

The includes() can also be applied on arrays. You can use it to check if a certain element is in an array. It will either true or false.

const weather = ['sun', 'rain', 'cloudy'];

weather.includes('sun'); // true

# Community Input

# Check if node is a descendant of a specified node

If you're checking if a node is a descendant of a specified node, you can use the contains() method. The descendant can be a child, grandchild, great-grandchild, etc.

@__offblack: When we want to check if a document element contains a particular CSS class; we would use el.classList.contains('class-name') the contains function behaves like the includes function on a DOM elements classList. Helps a long way when making decisions on toggling classes, etc through vanilla JS

const span = document.querySelector('span');

# Performance Test: indexOf vs includes

Thanks Filip for creating these test cases. If you're interested in knowing the speed test for how these methods fair in different browser, check out the link.


# Resources

Related Tidbits