Why is there no logical xor in JavaScript?
The XOR of two booleans is simply whether they are different, therefore:
Boolean(a) !== Boolean(b)