Lets take an example,
> x = 2;
> _ --;
In the above code we have first assigned 2 to 'x' and then we have used ' _ -- ' to actually get the last expression and decremented it by 1.
From the above code we can see that it actually access the full last expression rather than a value of it.
Suppose accidently you have used something like
> var a = 2;
Then you will get NaN because the result of 'var a = 2' expression is undefined as a variable assignment doesn't return a result when evaluated. So when you are accessing the last expression you will get NaN.
Please Like and Share the Blog, if you find it interesting and helpful.