Es sind zwei verschiedene Dinge.
x=true;
evaluiert zu einer wahren Aussagex=false;
dito
Das ist wieder nicht die Wahrheit. x = false
evaluiert zu false
, das ist in der EcmaScript-Spezifikation eindeutig festgelegt, ich habe die relevanten Schritte aus dem Evaluierungsalgorithmus mal für dich rausgesucht:
12.15.4 Runtime Semantics: Evaluation
LeftHandSideExpression=AssignmentExpression
3. Let rref
be the result of evaluating AssignmentExpression.
4. Let rval
be ? GetValue(rref)
.
6. Return rval
.