javascript (без jquery, асинхронность и как с ней жить), DOM-модель (что такое dom, как с ним работать), http (понимание как работает).
это то что нужно знать обязательно. А дальше уже идет специфика, которая познается с опытом, типа баги ie или webkit. Часть проблем решается полифилами/шимами, стоит знать что есть что... Вообще там реально много всего, но основы должны быть.
ну и стоит использовать штуки для автоматизации (grunt/gulp, less/sass и т.д.), покрытие кода тестами (e2e, unit), изучение фреймворков (angular.js, enber.js и т.д.), одного хватит для начала.