Části podtržítkem jsou inspirovány nebo vypůjčen z Olivera Steele je funkční, prototype.js a Johna Resig Micro-šablonovacího.
Podpora funkcí programování se přidá, ale bez rozšíření některého z vestavěného v JavaScriptu objektech.
Podtržítko poskytuje 60-liché funkce, které podporují oba obvyklé funkční podezřelé: Map, zvolte, uplatnit & ndash; stejně jako více specializované pomocníci: funkce závaznými, JavaScript templating, hluboké testování rovnosti, a tak dále. To delegáti na vestavěných funkcí, pokud jsou přítomny, tak moderní prohlížeče budou používat nativní implementace foreach, mapa, snížit, filtr, každý, někteří a indexOf.
Porty Underscore.js jsou k dispozici pro:
PHP
Krajta
Perl
Co je nového v této verzi:
- Přidá metoda _.create, jak zeštíhlit verze Object.create.
- Práce kolem iOS chybu, která může způsobit nesprávně isArrayLike být JIT-ed. Také opravuje chybu při předávání 0 pro isArrayLike.
Co je nového ve verzi 1.8.2:
- Opravy / změní nějaké staré-Internet-Explorer a související okrajový případ chování.
Co je nového ve verzi 1.7.0:
- V zájmu jednotnosti a rychlost přes prohlížečích, podtržení nyní ignoruje nativní metody array pro Foreach, mapa, snížit, reduceRight, filtr, každý, nějaký, IndexOf a lastIndexOf. & Quot; Řídká & quot; pole jsou oficiálně mrtvé podtržení.
- Přidal _.iteratee přizpůsobit iterátorů používané funkce sběru. Mnoho podtržení metody budou mít řetězec argument pro snadnější vyhledáváními _.property stylu, objekt pro filtrování _.where stylu, nebo funkci jako vlastní zpětné volání.
- Přidaný _.before jako protějšek k _.after.
- Přidal _.negate k obrácení pravdivostní hodnotu o prošel-in predikátu.
- Přidána _.noop jako šikovný prázdný funkci vyhrazeného místa.
- _. IsEmpty nyní pracuje s argumenty objekty.
- _. Je nyní chrání před nullish objektů.
- Přepíše základní metody, jako každý a někteří i oni budou používány interně jinými funkcemi podtržítkem taky.
- Únikové funkce zvládnout backticks (`), nakládat s IE ≤ 8 chyba.
- V zájmu jednotnosti, _.union a _.difference nyní pracuje pouze s poli a ne variadic args.
- _. Memoize vystavuje cache memoized hodnot jako vlastnost na vrácené funkce.
- _. Pick přijímá iteratee a kontextu argumenty pro pokročilejší zpětné volání.
- podtrhují šablony již přijímat počáteční datový objekt. _.template vždy vrátí funkci teď.
Co je nového ve verzi 1.5.0:
- Zdroj mapa je nyní dodáván pro snadnější ladění minified výroba sestavení podtržení.
- Funkce defaults nyní přepíše pouze nedefinované hodnoty, ty ne null.
- Odstraněna schopnost volat _.bindAll s No Name metoda argumentů. Je to skoro vždy moudřejší bílého seznamu názvy metod, chcete svázat.
- Odstraněna schopnost volat _.after s počtem vyvolání nula. Minimální počet hovorů je (samozřejmě), nyní 1.
Co je nového ve verzi 1.4.4:
- Přidáno _.findWhere, pro nalezení prvního prvku V seznamu, který odpovídá konkrétní sadu klíčů a hodnot.
- Přidána _.partial, pro částečné použití funkce beze změny jeho dynamický odkaz na toto.
- Zjednodušený vazbu tím, že odstraní některé případy hran zahrnující funkce konstruktoru. Stručně řečeno: neuvádějte. _.bind Vaše konstruktor
- menší optimalizace vyvolat.
- Fix chyby v minified verzi kvůli minifier nesprávně optimalizaci-away isFunction.
Co je nového ve verzi 1.4.3:
- Přidána výchozí _.identity iterátor na countBy a groupBy.
- Funkce uniq nyní může trvat řadu, iterátor, kontext jako seznamu argumentů.
- Časy fungují nyní vrací mapované pole z výsledků iterátorů.
- Zjednodušené a pevné chyby v plyn.
Co je nového ve verzi 1.4.2:
- pro zpětnou kompatibilitu, se vrátil k pre-1.4. 0 Chování při předávání null do iterace funkce. Oni teď se stal ne-ops znovu.
Co je nového ve verzi 1.4.0:
- Přidána funkce párů, pro soustružení objekt JavaScript do [klíčový, hodnota] párů ... stejně jako funkce objektu, pro konverzi řadu [klíčový, hodnota] dvojicích do objektu.
- Přidána funkce countBy, pro počítání počtu objektů v seznamu, které odpovídají určitým kritériím.
- Přidána funkce invertní, pro provádění jednoduchou inverzi klíčů a hodnot v objektu.
- Přidána kde funkci, pro snadné případy filtrování seznamu objektů se specifickými hodnotami.
- Přidána funkce vynechat, pro filtrování objektu odstranit určité klíče.
- Přidána náhodný funkce, vrátit náhodné číslo v daném rozsahu.
- _. Debounce'd funkce nyní vrátit své poslední aktualizovanou hodnotu, stejně jako _.throttle'd funkce dělat.
- Funkce SortBy nyní běží stabilní řadicí algoritmus.
- Přidána volitelnou možnost fromIndex na IndexOf a lastIndexOf.
- & quot; Řídká & quot; pole jsou v podtržítkem iterace funkce již není podporována. Použití pro místo (nebo ještě lépe, objekt).
- MIN a MAX funkce mohou být nyní nazýván na velmi velkých polích.
- interpolací v šablonách nyní představuje null a nedefinované jako prázdný řetězec.
Co je nového ve verzi 1.3.2:
- Přidána funkce Pick, která vám umožní filtrovat objekt doslovný s whitelist povolených názvů vlastností.
- Přidána funkce výsledek, pro pohodlí při práci s API, které umožňují buď funkce nebo raw vlastnosti.
- Přidána funkce isFinite, protože někdy s vědomím, že hodnota je číslo prostě není dost.
- Funkce SortBy může nyní také být předány jméno řetězec vlastnosti chcete použít jako pořadí řazení na každém objektu.
- Pevná uniq pro práci s řídkými poli.
- Funkce Rozdíl nyní provádí mělké zploštit místo hlubokého jedné při výpočtu rozdílů pole.
- spínacím nyní trvá bezprostřední parametr, který způsobí zpětného volání střílet na vedoucí místo odtokové hrany.
Co je nového ve verzi 1.3.1:
- Přidána funkce _.has, jako bezpečnější způsob, jak využít hasOwnProperty.
- Přidána _.collect jako alias pro _.map. Smalltalkers, radujte se.
- Vrátit starou změnu tak, že _.extend bude správně kopírovat přes klíče s nedefinované hodnoty znovu.
- Oprava chyby zastavit unikající lomítka v rámci interpolací v _.template.
Co je nového ve verzi 1.3.0:.
- Odstraněna podpora AMD (RequireJS) od podtrhují
Co je nového ve verzi 1.2.4:
- Can (a pravděpodobně by) napsat _.chain (seznam) namísto _ (seznam) .chain ().
- Fix pro uniklých znaky v podtržítkem šablony, a pro podporu úpravy z _.templateSettings, že pouze stanovit jeden či dva z požadovaných regexes.
- Fix pro předávání matici jako první argument funkcí _.wrap'd.
- Vylepšená kompatibilita s ClojureScript, který přidává funkce volání na String.prototype.
Co je nového ve verzi 1.2.3:
- Dynamický rozsah je nyní zachovány pro zkompilovaný _.template funkce, takže můžete použít hodnotu, pokud se vám líbí.
- Řídká podpora pole _.indexOf, _.lastIndexOf.
- Jak _.reduce a _.reduceRight nyní může být předán explicitně nedefinovanou hodnotu.
Co je nového ve verzi 1.2.2:
- Pokračování vylepší _.isEqual sémantiky. Nyní JS primitiva jsou považovány za rovnocenné jejich zabalené verze, a pole jsou porovnány podle jejich číselné vlastností pouze.
- _. Uniknout již se snaží být chytrý o ne double-úniku již unikly HTML entity. Teď to prostě uniká ohledu na to.
- V _.template, nyní můžete nechat středníky z hodnocených prohlášení, pokud si budete přát: & # x3c;%})% & # X3e; .
- _ po (zpětné volání, 0), bude nyní okamžitě spustí zpětné volání, takže & quot;. Po & quot; snazší používání díky asynchronní API.
Co je nového ve verzi 1.2.1:
- Několik důležitých oprav chyb pro _.isEqual, který by měl nyní udělat lépe na mutované polí, a na non-Array objekty s vlastnostmi délky.
- Nyní _.groupBy (seznam, "majetek"), jako zástupce pro seskupení hodnot podle určitého společného jmění.
- _. Throttle'd funkce nyní oheň ihned po vyvolání, a jsou rychlost omezenou poté.
- Většina _.is [Type] kontroluje již ducktype.
- Funkce _.bind nyní také funguje na konstruktérů, a-la ES5 ... ale ty by nikdy chtít používat _.bind na funkci konstruktoru.
- _. Klon již zábaly typy non-objektů v objektech.
- _. Najít a _.filter jsou nyní preferované jména pro _.detect a _.select.
Co je nového ve verzi 1.2.0:
- Funkce _.isEqual nyní podporuje skutečnou hlubokou rovnost srovnání s kontrolami pro cyklických struktur, díky Kit Cambridge.
- podtrhují šablony nyní podporují HTML útěku interpolace, pomocí & # x3c,% - ...% & # X3e; syntax.
- Ryan Tenney přispěl _.shuffle, který používá upravenou Fisher-Yates, aby vám zamíchají kopii pole.
- _. Uniq nyní může být předán volitelný iterátor, aby se zjistilo, co kritéria objekt by měl být považován za jedinečný.
- _. Vydrží nyní trvá volitelný argument, který se vrátí poslední N prvků seznamu.
- Nová _.initial funkce byla přidána, jako zrcadlo _.rest, která vrací všechny počáteční hodnoty seznamu (kromě posledního N).
Co je nového ve verzi 1.1.7:
- Přidáno _.groupBy, který agreguje kolekci do skupiny, jako je zboží.
- Přidána _.union a _.difference, doplnit (re-jmenoval) _.intersection.
- různá vylepšení pro podporu řídkých polí. _.toArray nyní vrátí klon, pokud přímo prošel pole. _.functions nyní také vrátí jména funkcí, které jsou přítomné v řetězci prototypu.
Co je nového ve verzi 1.1.6:
- Přidaný _.after, který vrátí funkci že funguje pouze poté, co byla uzavřena první volal zadaný počet opakování. _.invoke mohou nyní přímý odkaz funkce. _.every nyní vyžaduje funkci iterátoru, které mají být předány, což odráží ECMA5 API. _.extend žádné delší zkopíruje klíče, když hodnota je nedefinovaná. _.bind teď chyby při pokusu o svázat nedefinovanou hodnotu.
Co je nového ve verzi 1.1.4:
- Lepší soulad s metodami Array ES5, když předávání null as hodnota. _.wrap nyní správně nastaví to pro zabalené funkci. _.indexOf nyní trvá volitelný příznak pro nalezení indexu kurzor v poli, které je zaručeno, aby již být řazeny.
- Zabránění použití .callee, umožnit _.isArray správně pracovat v přísném režimu ES5 je.
Co je nového ve verzi 1.1.3:
- V CommonJS, podtržítko může nyní být požadována jen s :
- var _ = vyžadují (& quot; podtrhnout & quot;). Přidána _.throttle a _.debounce funkce.
- Odstraněno _.breakLoop, ve prospěch ECMA5 stylu un-přerušení-schopný každé realizace - to odstraní try / catch, a budete mít nyní lepší trasování zásobníku pro výjimky, které jsou hozený do podtržítko iterátoru. Vylepšena isType rodinu funkcí pro lepší interoperabilitu s hostitelskými objekty Internet Explorer. _.template nyní správně uniká zpětná lomítka v šablonách. Lepší _.reduce kompatibilitu s verzí ECMA5: pokud nechcete projít počáteční hodnotu, první položka v kolekci je použito. _.each již vrací iterován kolekci, pro lepší konzistenci s ECMA5 je foreach.
Co je nového ve verzi 1.0.4:
- funkce _ memoize, které mohou být použity pro. urychlit drahé opakované výpočty pomocí mezipaměti výsledků.
Co je nového ve verzi 1.0.2:.
- Pevné _.isArguments pro Opera
Komentáře nebyl nalezen