On Jan 16, 11:08 am, AKS <aksus...@yandex.ruwrote:
On Jan 16, 9:57 am, Thomas 'PointedEars' Lahn <PointedE...@web.de>
wrote:
My guess would be that ToNumber(null.[[DefaultValue]](hint=Number)) that
is called by ToNumber(ToPrimitive(null, hint=Number)) that is called by
ToNumber(null) throws an exception and so there is no result for the latter
operation, and no result means that `false' is returned from the method:
Why do you think that -toPrimitive- is needed? Null is primitive.
These are some good questions on the same topic .....
Is true or false ?
1) NaN == NaN -->
2) null == undefined -->
3) false==0 -->
4) false===0 -->
5) "5"==5 -->
"5"===5 -->
Just try to answer all these
some more simple but good question here
http://ketankhairnar.blogspot.com/20...ript-test.html
Anyways to get clear idea.. read below
This is the text from the Wrox: Profession JavaScript book
When performing conversions, follow these basic rules:
❑ If an operand is a Boolean value, convert it into a numeric value
before checking for equality.
A value of false converts to 0; whereas a value of true converts to 1.
❑ If one operand is a string and the other is a number, attempt to
convert the string into a number
before checking for equality.
❑ If one operand is an object and the other is a string, attempt to
convert the object to a string
(using the toString() method) before checking for equality.
❑ If one operand is an object and the other is a number, attempt to
convert the object to a number
before checking for equality.
The operators also follow these rules when making comparisons:
❑ Values of null and undefined are equal.
❑ Values of null and undefined cannot be converted into any other
values for equality checking.
❑ If either operand is NaN, the equal operator returns false and the
not equal operator returns
true. Important note: Even if both operands are NaN, the equal
operator returns false because,
by rule, NaN is not equal to NaN.
❑ If both operands are objects, then the reference values are
compared. If both operands point to
the same object, then the equal operator returns true. Otherwise, the
two are not equal.
The following table lists some special cases and their results:
Expression Value
--------------------------
null == undefined true
“NaN” == NaN false
5 == NaN false
NaN == NaN false
NaN != NaN true
false == 0 true
true == 1 true
true == 2 false
undefined == 0 false
null == 0 false
“5” == 5 true