I'm looking at ECMA-262 grammar for a definition of the next code bellow:
const v = (! +  + ); const c = (false + ); console.log(v); console.log(c);
What is BEHIND it?
Until now I did not find anything helpful, does anyone know why it gives those results or have references about it?
In the first case what it does is :
Convert first  to primitive, which is performed by invoking toString() method of array. The toString method joins all the array values to a string. If you wold have something like
(false + [1,2,3])you would get :
The second step is to bring the boolean in the String context
Now that we have all the values in the same datastructure, it will simply concatenate all of them
In your case
(! +  + ) is evaluated to 'true' which has the length of 4.
EDIT: As Felix Kling was suggesting ! operator has a different role in the evaluation of
(! +  + ).
In this case what happens is that :
! + is evaluated to true. This is because
! + puts them in a Boolean context where [toNumber] operation is applied on  which is
true + is evaluated to
'true'. This is because when you try to add a boolean with an object (array is derived from object) [toString] operation is applied to both items.