Zum Inhalt springen

Underscore.js

aus Wikipedia, der freien Enzyklopädie
Underscore.js

colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | Logo
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Entwickler Jeremy Ashkenas, DocumentCloud sowie Investigative Reporters & Editors
Erscheinungsjahr 2009
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Betriebssystem plattformunabhängig
Programmier­sprache JavaScript
Kategorie JavaScript-Bibliothek
Lizenz MIT-Lizenz (Freie Software)
deutschsprachig ja
underscorejs.org

Underscore.js oder kurz Underscore (für engl. Unterstrich) ist eine freie JavaScript-Bibliothek mit Hilfsfunktionen für alltägliche JavaScript-Aufgaben. Es wurde 2009 von Jeremy Ashkenas (Backbone.js, CoffeeScript) als Werkzeugsammlung für Container-Operationen auf Arrays und Objekten sowie von JavaScript-Funktionen geschaffen. Der Name der Bibliothek rührt vom für sie reservierten globalen Objekt _ (Underscore ist englisch für das Zeichen Unterstrich) analog zum Objekt $ in jQuery her.

Underscore folgt dem Paradigma der funktionalen Programmierung und baut komplexe Operationen durch Komposition einfacher Funktionen auf. Dafür verzichtet es auf die ansonsten in JavaScript oft genutzte Erweiterung der Objekt-Prototypen zugunsten einer durchgehenden Hilfsklassen-Semantik.

Browser-Kompatibilität[Bearbeiten]

Zur Prüfung der Browser-Kompatibilität steht eine eigene Test-Suite bereit<ref>Underscore Test Suite. Abgerufen am 6. August 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, die eine Kompatibilität zu Internet Explorer ab Version 6.0 sowie Chrome 28/34, Opera 12/20 und Firefox 22/28 ergab (getestet mit Version 1.5.1 resp. 1.6.0 auf Windows 7 64 Bit respektive mit IETester<ref>Core Services: Browser Compatibility Check for Internet Explorer Versions from 5.5 to 10. Version 0.5.2. 2. April 2013, abgerufen am 6. August 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>).

Zur Sicherung der bestmöglichen Performance werden Underscore-intern aktuelle Sprachelemente eingesetzt, sofern diese auf der jeweiligen Plattform vorhanden sind. So delegierte beispielsweise die Funktion _.each() bis Release 1.6.0 an die native Umsetzung von Array.prototype.forEach(), sofern diese existiert, und stellte ansonsten eine eigene Implementierung bereit – seit Release 1.7.0 werden die Array-Methoden durchgängig neu implementiert.

Alternativen[Bearbeiten]

Seit 2009 besteht das Projekt Lodash und stellt eine Übermenge der von Underscore.js angebotenen Funktionalität bereit.<ref>Lodash auf GitHub</ref><ref>Differences between Lodash and Underscore.js. In: Stack Overflow. 16. Dezember 2012, abgerufen am 26. Januar 2021.</ref>

Trivia[Bearbeiten]

Die Dokumentation beschreibt Underscore so:

“Underscore is a utility-belt library… the tie to go along with jQuery’s tux, and Backbone.js’s suspenders.”

„Underscore ist eine Werkzeuggürtel-Bibliothek,… der zum jQuery-Smoking passende Binder (Schlips) und Tragband (Hosenträger) für Backbone.js.“

– Die Seite Vorlage:Person/styles.css hat keinen Inhalt.Jeremy Ashkenas: http://underscorejs.org/

Einzelnachweise[Bearbeiten]

<references />