In the JavaScript console, if I execute:
2.toString()
I get the error:
Uncaught SyntaxError: Invalid or unexpected token
But if I execute (2).toString()
, the result is "2"
.
Why do I have to use the parentheses in order to apply methods from the Number prototype?
Other "primitives" work without parentheses. For example:
true.toString()
=> "true"
"".toString()
=> ""
It doesn't work for null
or undefined
, of course, since by definition they don't have any properties or methods.
Why is Number different from Boolean and String in this way?