Equals
In Node.js we can compare things with two equals signs or three equals signs. There is a subtle difference here. But in most cases the two have the same effect.
With three equals signs, the types of the two variables must be equal. With two equals signs, a conversion may occur in the runtime.
Here we have a string
that stores digit characters (text). And we have a number that directly stores its integer value.
string
is converted to a number.var text = "800"; var number = 800; // Use type conversion with two equals. if (text == number) { console.log("OK"); } // Do not allow type conversion with 3 equals. if (text === number) { console.log("Not reached"); } // Use not equals with no type conversion. if (text !== number) { console.log("OK 2"); }OK OK 2
In programming, we try to reduce the number of steps needed. The best practice remains as before: use three equals signs when possible. A possible conversion is eliminated.
With three equals signs, we compare both the type and the value of two variables. With two equals signs, only the values are compared—conversions may occur.