Eine der Hauptaufgaben der JavaScript-Programmierung ist die Manipulation von HTML-Elementen mithilfe des Document Object Models (DOM). Damit kann man sich von Element (Knoten) zu Element bewegen und diese verändern. Man kann Knoten über eine ID oder einen Tag-Namen ansteuern, es gibt aber z.B. keine direkte Möglichkeit, alle Elemente einer Klasse auszuwählen.
Eine weitere Schwierigkeit stellt die unterschiedliche Interpretation des DOMs der Browsern dar. Teile des DOM-Standards funktionieren nicht in allen Browsern. Der Internet Explorer behandelt z.B. Events anders als andere Browser, derselbe HTML-Code erzeugt eventuell in Firefox und Safari mehr Textknoten als im Internet Explorer. Das Beheben solcher JavaScript-Probleme ist sehr aufwändig und es kostet viel Zeit, entsprechenden Code zu produzieren, damit sich die verschiedenen Browser gleich verhalten.
Viele JavaScript-Programme erfüllen immer wieder die gleichen Aufgaben in Webseiten: Elemente auswählen, neuen Inhalt einfügen, Inhalte anzeigen und ausblenden, die Attribute eines Tags ändern, den Wert von Formularfeldern bestimmen oder auf verschiedene Benutzerinteraktionen reagieren. Sämtliche dieser Funktionalitäten jedes Mal neu zu programmieren kann sehr aufwändig sein, vor allem wenn die Browser den Code unterschiedlich interpretieren. Mithilfe von JavaScript-Frameworks (auch JavaScript-Bibliotheken genannt) kann man viele zeitraubende Programmierdetails überspringen.
Eine JavaScript-Bibliothek ist eine Sammlung von JavaScript-Code, die einfache Lösungen für viele verbreitete und häufig benötigte Funktionalitäten beinhaltet. Solche Bibliotheken arbeiten wie eine Ansammlung im Voraus geschriebener JavaScript-Funktionen, die man je nach Bedarf in seine Seite einbindet. Diese Funktionen erleichtern den Einsatz häufig wiederkehrender Aufgaben, so kann man viele Zeilen selbstgeschriebenen Code oft durch einen einzigen Funktionsaufruf aus der Bibliothek ersetzen. Die Bibliotheken sind darauf ausgelegt, dass sie in allen Browsern gleich funktionieren, der hohe Zeitaufwand für ausführliche Tests entfällt. Mittlerweile gibt es sehr viele JavaScript-Bibliotheken von denen die meisten kostenlos verwendet werden können. Auch große Websites wie Yahoo, Amazon, CNN, Apple, Microsoft, Google und Twitter setzen erfolgreich JavaScript-Frameworks ein.
Vergleich der einzelnen Frameworks auch unter http://matthiasschuetz.com/javascript-framework-matrix/de/