Q:

Why does +++x gives an error message when +x++ works fine?

var x = null;

+++x generates a ReferenceError, but when I do the same using postfix increment operator +x++, it works just fine.

A:

The LeftHandSideExpression for the ++ operator must not be a number. For instance
1++;

will fail with the same error (invalid increment operand). You can only apply the pre- and postincrement operators on variables/identifiers/expressions.
Since the + sign casts the null value into a number (0), you got the same outcome.
Examples:
var foo = null,
    bar = 5;

foo++;    // 0
0++;      // invalid increment operand
null++;   // invalid increment operand
(+bar)++  // invalid increment operand
foo++ +2; // 2

