Причина результата побитового НЕ в JavaScript?
https://ru.m.wikipedia.org/wiki/%D0%94%D0%BE%D0%BF...
Aves ещё подсказал https://learn.javascript.ru/bitwise-operators#sign...
А чему вы надеялись или предполагали это число будет равно?
Раз в старшем разряде "1", значит число отрицательное.
Как получить из двоичного кода отрицательное в десятичном? Просто!
Для этого надо понять как получать отрицательные в двоичном. Что имеем: разрядность - 32 бита, число, которое нужно перевести в двоичный код "-10".
В шестнадцатеричном коде будет так: (0хFFFFFFFF - 0хА) + 0х1, это тоже самое что число "+10" представить в обратном коде и прибавить к результату единицу.
Еще можно так: 4294967295 - 10 + 1, что в двоичном коде даст тот же результат 1111 1111 1111 1111 1111 1111 1111 0110
Для получения положительного числа операция та же, обратный код + 1.
JS я плохо знаю, но результат логичный: 1010 он перевел как 10 в десятичной сс и просто подписал знак "минус".