Reputation: 6613
I'm trying to understand difference between 4
and (4)
.
4.toString(); // SyntaxError: Unexpected token ILLEGAL
(4).toString(); // "4"
I thought it's because toString()
method is defined on Number
(object) and 4 is a primitive datatype i.e.number
which doesn't have toString()
method.
However, how does it works for (4).toString()
?
4 === (new Number(4)) // false
(4) === (new Number(4)) // false. (4) is not an instance of Number object
Upvotes: 0
Views: 708
Reputation: 7195
Dot (.
) doesn't only means for member access operator. It also means for decimal point in floating-point literals. When JS interpreter meets dot after digit (4
in your case) it expects floating-point literal, i.e. digits after dot. That's why do you need grouping operator (parens) there.
Upvotes: 3