Каким-то образом JavaScript имеет смысл побитовых операцийNaN ^ 1, Infinity ^ 1и даже 'a' ^ 1(все оцениваются как 1).
NaN ^ 1
Infinity ^ 1
'a' ^ 1
1
Каковы правила, регулирующие побитовые операторы над числами? Почему все приведенные выше примеры оцениваются как 1?