smarter-eqeqeq

This option will enforce === and !== in your code unless you’re comparing between literals or you’re doing a typeof comparison. For those types of comparisons using strict equality is unnecessary.

The following patterns are considered okay and do not cause warnings:

typeof foo == 'undefined'
'hello' != 'world'
0 == 0
true == true

The following patterns are considered warnings:

a == b
foo == true
bananas != 1

To learn more about type coercion check out Truth, Equality, and JavaScript

When Not To Use It

If you’re concerned about code consistency then it’s best to use the built-in eqeqeq function.