Rohit
Rohit

Reputation: 6613

Understanding Number.toString(radix) unexpected token exception

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

Answers (1)

hindmost
hindmost

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

Related Questions