Ja das mit den = und ==
Gönne deinen Zeilenenden hin und weder ein Semikolon, damit der Rechner da nicht durcheinander kommt.
Wie wäre es mit
if (x==1) x=0;
else x=1;
oder noch kürzer;
x = (x==0)?1:0;
Ich denke, damit ist auch der Fall erschlagen, daß x mal 2 oder undefined sein kann.
Oft auch ein Fehler wenn das eine Ergebniss eine Zahl und das andere ein String ist.
Um sicher zu gehen, daß alles Zahl ist
x = parseInt(...)