Parti di sottolineatura si ispirano o presi in prestito da Oliver Steele Funzionale, Prototype.js e John Resig Micro-Templating.
Viene aggiunto il supporto di programmazione funzionale, ma senza estendere uno dei built-in JavaScript oggetti.
Underscore fornisce funzioni di 60 e rotti che supportano sia i soliti noti funzionali: mappa, selezionare, invocare & mdash; così come aiutanti più specializzati: vincolanti funzione, JavaScript templating, test di uguaglianza profonda, e così via. Si delega a funzioni built-in, se presenti, i browser così moderni utilizzeranno le implementazioni native di forEach, carta, ridurre, filtrare, ogni, alcuni e indexOf.
Porti di Underscore.js sono disponibili per:
PHP
Pitone
Perl
Cosa c'è di nuovo in questa versione:
- Aggiunge un metodo _.create, come una snellita versione di Object.create.
- Opere intorno a un bug di iOS che può causare impropriamente isArrayLike essere JIT-ed. Corregge anche un bug quando si passa da 0 a isArrayLike.
Cosa c'è di nuovo nella versione 1.8.2:
- Correzioni / cambia un po 'vecchio Internet Explorer e comportamento caso limite relativi.
Cosa c'è di nuovo nella versione 1.7.0:
- Per coerenza e velocità attraverso i browser, Underscore ora ignora Metodi di array nativi per forEach, carta, ridurre, reduceRight, filtrare, ogni, alcuni, indexOf, e lastIndexOf. & Quot; Sparse & quot; array sono ufficialmente morto in Underscore.
- Aggiunto _.iteratee personalizzare i iteratori utilizzati dalle funzioni di riscossione. Molti metodi di sottolineatura avranno un argomento stringa per più facili ricerche _.property stile, un oggetto per il filtraggio _.where stile, o una funzione come un callback personalizzato.
- Aggiunto _.before come controparte per _.after.
- Aggiunto _.negate invertire il valore di verità di un predicato passato-in.
- Aggiunta _.noop come un pratico funzione segnaposto vuoto.
- _. IsEmpty ora funziona con argomenti oggetti.
- _. Ha ora custodisce contro oggetti nullish.
- metodi di base di sostituzione, come ogni e alcuni e saranno utilizzate internamente da altre funzioni di sottolineatura anche.
- Le funzioni di fuga gestiscono backticks (`), per far fronte a un IE ≤ 8 bug.
- Per coerenza, _.union e _.difference ora funzionano solo con array e non args variadici.
- _. Memoize espone la cache dei valori memoized come una proprietà sulla funzione restituita.
- _. Selezionamento iteratee e argomenti contesto accetta per una richiamata più avanzata.
- modelli sottolineatura non accettano più un oggetto di dati iniziali. _.template restituisce sempre una funzione ora.
Cosa c'è di nuovo nella versione 1.5.0:
- Una mappa sorgente viene ora fornito per facilitare la messa a punto di la build di produzione minified di sottolineatura.
- La funzione di default ora sostituisce solo valori non definiti, quelli non nulli.
- Rimosso la possibilità di chiamare _.bindAll senza argomenti nome del metodo. È praticamente sempre più saggio di white-list i nomi dei metodi che desideri associare.
- Rimosso la possibilità di chiamare _.after con un conteggio invocazione di zero. Il numero minimo di chiamate è (naturalmente) ora 1.
Cosa c'è di nuovo nella versione 1.4.4:
- Aggiunto _.findWhere, per trovare il primo elemento in un elenco che corrisponde a un particolare insieme di chiavi e valori.
- Aggiunta _.partial, per parte applicando una funzione senza cambiare il suo riferimento dinamico a questo.
- semplificata bind rimuovendo alcuni casi limite che coinvolgono funzioni di costruzione. In breve:. Non _.bind vostri costruttori
- Una ottimizzazione minore da richiamare.
- Bug fix nella versione minified causa della minifier ottimizzare-away in modo errato isfunction.
Cosa c'è di nuovo nella versione 1.4.3:
- Aggiunto un iteratore _.identity default countBy e groupBy.
- La funzione uniq può ora prendere array, iteratore, contesto, come la lista degli argomenti.
- funzionano I tempi ora restituisce la matrice mappato dei risultati iteratori.
- semplificata e bug risolti in gas.
Cosa c'è di nuovo nella versione 1.4.2:
- Per la compatibilità all'indietro, tornati ai valori pre-1.4. 0 il comportamento quando si passa null per funzioni di iterazione. Ora sono di nuovo no-ops.
Cosa c'è di nuovo nella versione 1.4.0:
- Aggiunta una funzione coppie, per trasformare un oggetto JavaScript in [key, value] coppie ... così come una funzione dell'oggetto, per la conversione di una serie di [chiave, valore] coppie in un oggetto.
- Aggiunta una funzione countBy, per contare il numero di oggetti in una lista che corrispondono a determinati criteri.
- aggiunta una funzione di inversione, per l'esecuzione di una semplice inversione delle chiavi e dei valori in un oggetto.
- Aggiunta una funzione in cui, per una facile casi di filtrare la lista per gli oggetti con valori specifici.
- aggiunta una funzione di omissione, per filtrare un oggetto per rimuovere alcuni tasti.
- Aggiunta una funzione random, per restituire un numero casuale in un determinato intervallo.
- _. Funzioni debounce'd ora restituiscono l'ultimo valore aggiornato, funzioni _.throttle'd proprio come fanno.
- La funzione SortBy ora gestisce un algoritmo stabile sorta.
- Aggiunta l'opzione fromIndex opzionale indexOf e lastIndexOf.
- & quot; Sparse & quot; array non sono più supportati nelle funzioni di iterazione sottolineatura. Utilizzare una per invece (o, meglio ancora, un oggetto).
- Le funzioni min e max possono ora essere chiamato molto grandi array.
- Interpolazione nei modelli rappresenta ora null e undefined come una stringa vuota.
Cosa c'è di nuovo nella versione 1.3.2:
- Aggiunta la funzione di ripresa, che consente di filtrare un oggetto letterale con una whitelist di nomi di proprietà consentite.
- Aggiunta la funzione di risultato, per comodità quando si lavora con le API che consentono sia funzioni o proprietà non elaborate.
- Aggiunta la funzione isFinite, perché a volte sapendo che un valore è un numero solo non è abbastanza.
- La funzione SortBy può ora anche essere passato il nome di stringa di una proprietà da utilizzare come criterio di ordinamento su ogni oggetto.
- uniq fissi per lavorare con le matrici sparse.
- La funzione differenza esegue ora un superficiale appiattire invece di un profondo uno nel calcolo delle differenze di matrice.
- La funzione antirimbalzo ora prende un parametro immediato, che farà sì che il callback di sparare sul leader al posto del bordo di uscita.
Cosa c'è di nuovo nella versione 1.3.1:
- È stata aggiunta una funzione _.has, come un più sicuro modo di usare hasOwnProperty.
- Aggiunto _.collect come alias per _.map. Smalltalkers, gioite.
- per conversione di un vecchio cambio in modo che _.extend sarà correttamente copiare chiavi con valori non definiti di nuovo.
- Bugfix per fermare la fuga barre all'interno interpolazioni in _.template.
Cosa c'è di nuovo nella versione 1.3.0:.
- Rimosso AMD (RequireJS) il sostegno di sottolineatura
Cosa c'è di nuovo nella versione 1.2.4:
- Può (e probabilmente deve) scrivere _.chain (elenco) invece di _ (elenco) .chain ().
- Fix per i caratteri di escape nei modelli di sottolineatura, e per sostenere le personalizzazioni di _.templateSettings che definiscono solo una o due delle regex necessarie.
- Fix per il passaggio di un array come primo argomento di una funzione _.wrap'd.
- Migliorata la compatibilità con ClojureScript, che aggiunge una funzione chiamata a String.prototype.
Cosa c'è di nuovo nella versione 1.2.3:
- ambito dinamico è ora conservato per _.template compilato funzioni, in modo da poter utilizzare il valore di questo, se volete.
- Supporto gamma Sparse di _.indexOf, _.lastIndexOf.
- Sia _.reduce e _.reduceRight ora può essere passato un valore esplicitamente definito.
Cosa c'è di nuovo nella versione 1.2.2:
- ritocchi Continua alla semantica _.isEqual. Ora primitive JS sono considerate equivalenti alle loro versioni avvolti, e gli array vengono confrontati con le loro proprietà numeriche solo.
- _. Sfuggire non cerca di essere intelligente di non fare doppio fuggire entità HTML già fuggiti. Ora sfugge solo a prescindere.
- In _.template, si può ora lasciare il punto e virgola su dichiarazioni valutati, se lo si desidera: & # x3c;}%)% & # X3e; .
- _ dopo (richiamata, 0) sarà ora scattare l'richiamata immediatamente, rendendo & quot;. Dopo & quot; più facile da usare con le API asincrone.
Cosa c'è di nuovo nella versione 1.2.1:
- Diversi importanti correzioni di bug per _.isEqual, che dovrebbe ora fare di meglio Array mutati, e sulla non-Array oggetti con proprietà di lunghezza.
- Can ora _.groupBy (lista, 'proprietà') come una scorciatoia per raggruppare i valori da una particolare proprietà comune.
- _. Funzioni throttle'd ora sparano subito in base alla chiamata, e sono tasso limitata in seguito.
- La maggior parte delle _.is [Tipo] controlla non più ducktype.
- La funzione _.bind ora funziona anche su costruttori, a-la ES5 ... ma non avrebbe mai voluto usare _.bind su una funzione di costruzione.
- _. Clone non avvolge tipi non-oggetto in oggetti.
- _. Trovi _.filter sono ora i nomi preferiti per _.detect e _.select.
Cosa c'è di nuovo nella versione 1.2.0:
- La funzione _.isEqual supporta ora una vera parità profondo confronto, con i controlli per strutture cicliche, grazie al kit di Cambridge.
- modelli sottolineatura ora supportano HTML fuga interpolazioni, usando & # x3c;% - ...% & # X3e; sintassi.
- Ryan Tenney contribuito _.shuffle, che utilizza una versione modificata di Fisher-Yates per darvi una copia mescolate di una matrice.
- _. Uniq ora può essere passato un iteratore optional, per determinare quali siano i criteri di un oggetto deve essere considerato unico nel suo genere.
- _. Durare ora prende un argomento opzionale che restituirà gli ultimi n elementi della lista.
- Una nuova funzione è stata aggiunta _.initial, come uno specchio di _.rest, che restituisce tutti i valori iniziali di un elenco (tranne l'ultimo N).
Cosa c'è di nuovo nella versione 1.1.7:
- Aggiunto _.groupBy, che aggrega una collezione in gruppi di oggetti come.
- _.union aggiunto e _.difference, per completare la (ribattezzato) _.intersection.
- Vari miglioramenti per il supporto di matrici sparse. _.toArray ora restituisce un clone, se direttamente superato un array. _.functions ora restituisce anche i nomi delle funzioni che sono presenti nella catena di prototipi.
Cosa c'è di nuovo nella versione 1.1.6:
- _.after Aggiunto, che restituirà una funzione che corre solo dopo essere stato chiamato un numero specificato di volte. _.invoke ora può prendere un riferimento funzione diretta. _.every ora richiede una funzione iteratore da passare, che rispecchia l'API ECMA5. _.extend nessun tasto più copie quando il valore non è definito. _.bind ora gli errori quando si cerca di associare un valore indefinito.
Cosa c'è di nuovo nella versione 1.1.4:
- migliorata rispetto ai metodi Array di ES5 quando passando null come un valore. _.wrap ora imposta correttamente questo per la funzione avvolto. _.indexOf ora prende una bandiera facoltativa per trovare l'indice di inserimento in una matrice che è garantito per essere già ordinati.
- Evitare l'uso di .callee, per consentire _.isArray di funzionare correttamente in modalità rigorosa di ES5.
Cosa c'è di nuovo nella versione 1.1.3:
- In CommonJS, Underscore ora può essere richiesto con un solo :
- var _ = require (& quot; sottolineare & quot;). Funzioni Aggiunta _.throttle e _.debounce.
- Rimosso _.breakLoop, a favore di un ECMA5 stile un-break-grado ogni implementazione - questo rimuove il try / catch, e ora avrete una migliore analisi dello stack per le eccezioni che vengono gettati in un iteratore sottolineatura. Migliorata la famiglia isType di funzioni per una migliore interoperabilità con oggetti host di Internet Explorer. _.template ora sfugge correttamente backslash nei template. Migliorata la compatibilità con la versione _.reduce ECMA5: se non si passa un valore iniziale, viene utilizzato il primo elemento della collezione. _.each non restituisce la raccolta iterata, per migliorare la coerenza con foreach ECMA5.
Cosa c'è di nuovo nella versione 1.0.4:
- funzione Memoize _, che può essere utilizzato per. accelerare costosi calcoli ripetuti mettendo in cache i risultati.
Cosa c'è di nuovo nella versione 1.0.2:.
- _.isArguments fissi per Opera
I commenti non trovato