Для чего нужны побитовые операции?
Они нужны для: Реализации криптографических алгоритмов  Реализации любых других алгоритмов требующих работу с битами Чтобы пользователи языка не изобретали велосипеды
Понимаете, это ведь не особенность языка - это скорее особенность наших процессоров,принципов вычислений, ассемблера. Раз уж эти операции существуют, причем именно в том виде в каком к ним привыкли то логично предположить что многие программы и алгоритмы рассчитывают на их наличие в инструментарии разработчика. Представьте что вам пришлось бы портировать некий криптографический алгоритм использующий эти операторы на js в котором их не было бы. Допустим вы реализуете его умножая/деля на два, но затем обнаруживаете, что при умножении старший бит у вас исчезает, а должен становится самый младшим. Кроме того ваша реализация на js была бы много медленней чем встроенная в язык реализация.
В первой главе книги Графика на JavaScript Рафаэлло Чекко есть отличные примеры, как это всё используется, советую к ознакомлению