Why does (1).constructor return ƒ Number() { [native code] }, whereas 1.constructor returns Uncaught SyntaxError: Invalid or unexpected token?
What is the difference between the two and what exactly happens under the hood?
Why does (1).constructor return ƒ Number() { [native code] }, whereas 1.constructor returns Uncaught SyntaxError: Invalid or unexpected token?
What is the difference between the two and what exactly happens under the hood?
 
    
    Your digit is part of a number literal. The first . in a numeric literal is the floating point and not the start of a property reference.
You can see this in the spec:
DecimalIntegerLiteral . DecimalDigits opt ExponentPart opt
By wrapping the numeric literal in parentheses, you separate it from the . so the . is not treated as part of the numeric literal (and so can be used to read a property of the resulting object).
