Хотя возможности языка JavaScript и достаточно велики, но некоторые вещи он просто не в состоянии выполнить. Поэтому надо четко понимать для каких целей JavaScript можно смело использовать, а где придется обратиться к другим технологиям. Существуют определенные ограничения JavaScript, знать и понимать которые необходимо.
Медленная скорость
  Любые скрипты являются частью веб-сайта, внедряются ли они прямо в html-документ 
  или хранятся в отдельном файле. В любом случае, они загружаются совместно с 
  веб-страницей, которая к ним обращается. Чем больше размер скрипта, тем больше 
  требуется времени браузеру для его загрузки на локальный компьютер. Здесь действуют 
  те же принципы, что и для веб-страниц. После получения программы, браузер анализирует 
  ее код и выполняет набор действий, в ней предписанный. Если скрипт содержит 
  ошибки или не оптимизирован для быстрой работы, браузер тратит определенное 
  время на его разбор.
  Все это, а также медленная скорость работы JavaScript по сравнению с серверными 
  языками программирования, существенно снижает общую скорость загрузки и работы 
  скриптов. Для сложных проектов, требующих большое количество операций и вычислений, 
  JavaScript лучше не использовать.
Работа с графикой
  Средства JavaScript не позволяют напрямую создавать и манипулировать графическими 
  образами. Встроенные возможности по операциям с изображениями могут работать 
  только с существующими файлами - загружать, трансформировать размеры и менять 
  источник изображения. Все остальные действия по работе с графикой недоступны.
Нет работы с файлами
  Для повышения безопасности, любые действия с файлами в языке JavaScript отсутствует. 
  Нет никакой возможности писать данные в файл или считывать из него. Cookie сюда 
  не относится, поскольку имеет ограниченную сферу применения.
Базы данных
  Как и в ситуации с файлами, любые возможности по подключению к базе данных и 
  управлению ей не доступны. В браузер Internet Explorer введена возможность связывания 
  данных, но в полном смысле базой данных это не является.
Работа с сетью
  JavaScript не поддерживает организацию сети в любом виде, за исключением возможности 
  делать ссылку на любой адрес. 
Открытость кода
  Как и содержимое веб-страницы, исходный код скрипта легко можно посмотреть и 
  скопировать к себе на компьютер. Любые попытки ограничить доступ к содержанию 
  путем отслеживания правой кнопки мыши и запрета на ее использования, невозможность 
  выделить и скопировать в буфер обмена информацию, а также просмотр html-кода, 
  свободно обходятся. Поэтому попытка, например, сделать тесты и проверку введенных 
  данных, хоть и успешна, но наталкивается на то условие, что правильные ответы 
  можно узнать, просто просмотрев текст скрипта.