Побитовый оператор и значение
важность: 5
Почему побитовые операции в примерах ниже не меняют число? Что они делают внутри?
alert( 123 ^ 0 ); // 123
alert( 0 ^ 123 ); // 123
alert( ~~123 ); // 123
-
Операция
a^bставит бит результата в1, если на соответствующей битовой позиции вaилиb(но не одновременно) стоит1.Так как в
0везде стоят нули, то биты берутся в точности как во втором аргументе. -
Первое побитовое НЕ
~превращает0в1, а1в0. А второе НЕ превращает ещё раз, в итоге получается как было.