Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Basics (Retired) Making Decisions with Conditional Statements Comparison Operators

difference between != and !==

difference between != and !==

4 Answers

Erik McClintock
Erik McClintock
45,783 Points


The difference is in how strict they are, and exactly what they check for, just like == and ===.

You can get more detailed information in this article about comparison operators.


the difference is that != is for comparing two different types for example: if you are comparing a variable and a string but it will still work if you comparing a string and a string or a var and a var and what a !== does is only compares the same type so it wont work with a var and a string

Rui W
Rui W
6,269 Points

An example which I think might help you understanding the difference. Please correct me if anyone feel this to be misleading:

7 !== '7' 

This returns true, since left variable is number (TYPE) and right variable is string (TYPE).

7 != '7'

This returns false, since both variable have the VALUE 7. != checks for inequality and found the opposite, so returns false.

!== is strictly comparing variables on both sides for their VALUE and TYPE. The result will be true if either VALUE or TYPE is inconsistent. While != is more "tolerant", that it is going to return true only if VALUE are different from the two sides of comparison.

This can actually be misleading.

I think the easiest way to understand is found at w3school. https://www.w3schools.com/js/js_comparisons.asp

!= will return a false if both meet the criteria and true if they both do not meet the criteria. !== This works similar to !=, the only difference is that this one truly verifies the criteria. Similar to == and ===.

I can see this being used with strings as well. With numbers, it can get a bit confusing.

var x = "hello"
X !== "hello" will return false
X !== "hi" will return true