-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Explanation of first example is wrong #316
Comments
so, overall, your state is absolutely correct , but here is the thing, [] == ![] , for this problem, even though ![] is firstly converted to boolean, there what the author meant is both sides are converted to numbers to be primitive both sides, :: If the types of the two operands are different, JavaScript attempts to convert them to a common type :: but your state is also true |
This is not entirely correct also. If you are following the specs precisely here is what happens
So the correct example for this explanation really should be [] == ![];
[] == false;
[] == 0;
'' == 0;
0 == 0;
true; I think the coercion to a string is an important step that shouldn't be left out because otherwise the explanation gives off the impression that empty arrays are directly coerced into 0 all the time which is simply not true. |
Explanation of this example is wrong:
https://github.com/denysdovhan/wtfjs#-is-equal-
This is just wrong. Strings are compared as strings, null compared to undefined is true, to-primitive might return a string instead on number and so on.
First step would be to convert
![]
tofalse
because of precedence.The text was updated successfully, but these errors were encountered: