These are not different operators.
Record:
a ==- " ";
analyzed as:
(a) == (-" ");
The same goes for ==+.
The expression is evaluated as truedue to conversion rules like weird for Javascript. The following occurs:
- unary operators
-(or +) convert their operand to a number. If it is an empty string, the result of this conversion is 0. a == (-" ") " " == 0. == , (, ), . " " 0.0 0, true.
( , Javascript , ECMAScript. ===, false, .)