Porções de Sublinhado são inspirados por ou emprestado de funcional, Prototype.js de Oliver Steele e de John Resig Micro-Templating.
Suporte de programação funcional é adicionado, mas sem estender qualquer um dos objetos built-in JavaScript.
Sublinhado fornece funções de cerca de 60 que suportam ambos os suspeitos do costume: funcionais mapa, selecione, invocar o & mdash; bem como ajudantes mais especializados: de ligação, função de templates JavaScript, testes de igualdade profunda, e assim por diante. Ele delega funções embutidas, se as atuais navegadores, tão modernas vão usar as implementações nativas de forEach, map, reduzir, filtro, cada, e alguns indexOf.
Portos de Underscore.js estão disponíveis para:
PHP
Pitão
Perl
O que é novo nesta versão:
- Adiciona um método _.create, como emagreceu versão do Object.create.
- Trabalha em torno de um bug iOS que podem causar indevidamente isArrayLike ser JIT-ed. Também corrige um bug ao passar 0 para isArrayLike.
O que é novo na versão 1.8.2:
- Fixes / altera alguns old-Internet Explorer e- comportamento caso extremo relacionado.
O que é novo na versão 1.7.0:
- Para consistência e velocidade em todos os navegadores, Underscore agora ignora métodos de array nativas para forEach, map, reduzir, reduceRight, filtro, cada, alguns, indexOf, e lastIndexOf. & Quot; Dispersa & quot; matrizes são oficialmente morto em Sublinhado.
- Adicionado _.iteratee para personalizar os iteradores usados por funções de recolha. Muitos métodos sublinhados terá um argumento de cadeia para facilitar as pesquisas de estilo _.property, um objeto para a filtragem de estilo _.where, ou uma função como um callback personalizado.
- Adicionado _.before como contrapartida _.after.
- Adicionado _.negate para inverter o valor de verdade de um predicado passou-in.
- Adicionado _.noop como uma função espaço reservado vazio calhar.
- _. IsEmpty agora trabalha com objetos argumentos.
- _. Agora tem protege contra objetos nullish.
- métodos base de substituição como cada um e alguns e eles vão ser usado internamente por outras funções sublinhados também.
- As funções de escape lidar com acentos graves (`), para lidar com um IE ≤ 8 bug.
- Por razões de coerência, _.union e _.difference agora só trabalhar com matrizes e não args variádicos.
- _. Memoize expõe o cache de valores memoized como uma propriedade na função retornado.
- _. Picareta aceita iteratee e argumentos de contexto para uma chamada de retorno mais avançado.
- modelos sublinhados não aceitam mais um objeto de dados inicial. _.template sempre retorna uma função agora.
O que é novo na versão 1.5.0:
- Um mapa de origem é agora fornecido para facilitar a depuração do a compilação de produção minified de sublinhado.
- A função de padrões agora só substitui valores indefinidos, queridos não nulos.
- Removida a capacidade de chamar _.bindAll sem argumentos nome do método. É quase sempre mais sensato para branco-lista os nomes dos métodos que você gostaria de ligar.
- Removida a capacidade de chamar _.after com uma contagem de invocação de zero. O número mínimo de chamadas é (naturalmente) agora 1.
O que é novo na versão 1.4.4:
- Adicionado _.findWhere, para encontrar o primeiro elemento em uma lista que corresponde a um determinado conjunto de chaves e valores.
- Adicionado _.partial, para aplicar parcialmente uma função sem alterar a sua referência dinâmica a esta.
- Simplificado ligam através da remoção de alguns casos de ponta que envolvem funções construtoras. Em suma:. Não _.bind seus construtores
- A otimização menor para invocar.
- bug Fix na versão minified devido à minifier otimizando-away incorretamente isFunction.
O que é novo na versão 1.4.3:
- Adicionado um iterador _.identity padrão para countBy e groupBy.
- A função uniq pode agora tomar matriz, iterador, o contexto como a lista de argumentos.
- Os tempos funcionar agora retorna a matriz de resultados mapeados iterador.
- Simplificado e bugs corrigidos no acelerador.
O que é novo na versão 1.4.2:
- Para compatibilidade com versões anteriores, retornou aos níveis pré-1.4. 0 comportamento ao passar null para funções de iteração. Eles agora se tornou não-ops novamente.
O que é novo na versão 1.4.0:
- Adicionado uma função de pares, para transformar um objeto JavaScript em [chave, valor] pares ..., bem como uma função de objeto, para converter uma matriz de [chave, valor] pares em um objeto.
- Adicionado uma função countBy, para a contagem do número de objetos em uma lista que correspondem a determinados critérios.
- Adicionado uma função invertido, para a realização de uma simples inversão das chaves e valores em um objeto.
- Adicionado uma função em que, para os casos fáceis de filtrar uma lista de objetos com valores específicos.
- Adicionado uma função omita, para filtrar um objeto para remover certas chaves.
- Adicionado uma função aleatória, para retornar um número aleatório em um determinado intervalo.
- _. Funções debounce'd agora retornarão seu último valor atualizado, assim como funções _.throttle'd fazer.
- A função sortBy agora corre um algoritmo de ordenação estável.
- Adicionado a opção fromIndex opcional para indexOf e lastIndexOf.
- & quot; Dispersa & quot; matrizes não são mais suportados em funções de iteração sublinhado. Use uma vez para (ou melhor ainda, um objeto).
- As funções mínimo e máximo pode agora ser chamado em matrizes muito grandes.
- A interpolação em modelos agora representa nulo e indefinido como a cadeia vazia.
O que é novo na versão 1.3.2:
- Adicionado a função de escolha, o que permite que você filtre um objeto literal com uma lista branca de nomes de propriedades permitidos.
- Adicionado a função de resultado, por conveniência ao trabalhar com APIs que permitem que qualquer funções ou propriedades em bruto.
- Adicionado a função isFinite, porque às vezes sabendo que um valor é um número só não é suficiente.
- A função sortBy pode agora também ser passado o nome de seqüência de uma propriedade para usar como a ordem de classificação em cada objeto.
- uniq fixos para trabalhar com matrizes esparsas.
- A função diferença agora realiza uma rasa achatar em vez de um profundo ao calcular diferenças de matriz.
- A função debounce agora leva um parâmetro de imediato, o que fará com que o retorno de chamada para disparar sobre o principal em vez do bordo de fuga.
O que é novo na versão 1.3.1:
- Adicionado uma função _.has, como mais seguro maneira de usar hasOwnProperty.
- Adicionado _.collect como um alias para _.map. Smalltalkers, alegrem-se.
- Revertido uma mudança de idade para que _.extend irá copiar corretamente as chaves com valores indefinidos novamente.
- Correção para parar escapando barras dentro interpolações em _.template.
O que é novo na versão 1.3.0:.
- Removido AMD apoio (RequireJS) de Sublinhado
O que é novo na versão 1.2.4:
- Pode (e provavelmente deve) escrever _.chain (lista) em vez de _ (lista) .chain ().
- Correção para caracteres de escape em modelos sublinhado, e para apoiar as personalizações de _.templateSettings que apenas definem uma ou duas das expressões regulares necessários.
- Correção para passar uma matriz como o primeiro argumento para uma função _.wrap'd.
- Melhor compatibilidade com ClojureScript, que adiciona uma função chamada para String.prototype.
O que é novo na versão 1.2.3:
- alcance dinâmico é agora preservado para _.template compilado funções, assim você pode usar o valor desta, se quiser.
- Suporte Dispersa de _.indexOf matriz, _.lastIndexOf.
- Ambos _.reduce e _.reduceRight agora pode ser passado um valor explicitamente indefinido.
O que é novo na versão 1.2.2:
- tweaks Continua a semântica _.isEqual. Agora primitivos JS são consideradas equivalentes às suas versões embrulhadas, e matrizes são comparados por suas propriedades numéricos somente.
- _. Escapar não tenta ser esperto sobre não double-escapar entidades HTML já escaparam. Agora ele só escapa independentemente.
- Em _.template, você pode agora deixar vírgulas fora de declarações avaliadas, se desejar: & # X3C;}%)% & # x3e; .
- _ depois (callback, 0) irá agora acionar o retorno de chamada imediatamente, tornando & quot;. Depois de & quot; mais fácil de usar com APIs assíncronas.
O que é novo na versão 1.2.1:
- Várias correções de bugs importantes para _.isEqual, que deve agora fazer melhor em Arrays mutantes, e em não-objetos Array com propriedades de comprimento.
- Podemos agora _.groupBy (lista, "propriedade") como um atalho para o agrupamento de valores por uma propriedade comum particular.
- _. Funções throttle'd agora disparar imediatamente após a invocação, e são, posteriormente, limitado-rate.
- A maioria dos _.is [Type] verifica não ducktype.
- A função _.bind agora também funciona em construtores, a-la ES5 ... mas você nunca iria querer usar _.bind em uma função de construtor.
- _. Clone não envolve tipos não-objeto em objetos.
- _. Encontrar e _.filter são agora os nomes preferidos para _.detect e _.select.
O que é novo na versão 1.2.0:
- A função _.isEqual agora suporta verdadeira igualdade profunda comparações, com verificações de estruturas cíclicas, graças ao Kit Cambridge.
- modelos sublinhados agora suporta HTML escapar interpolações, usando & # X3C;% - ...% & # x3e; sintaxe.
- Ryan Tenney contribuiu _.shuffle, que usa uma modificada Fisher-Yates para dar-lhe uma cópia embaralhadas de uma matriz.
- _. Uniq agora pode ser passado um iterador opcional, para determinar quais os critérios por um objeto deve ser considerado único.
- _. Durar agora leva um argumento opcional que retornará os últimos N elementos da lista.
- Uma nova função _.initial foi adicionado, como um espelho da _.rest, que retorna todos os valores iniciais de uma lista (exceto o último N).
O que é novo na versão 1.1.7:
- Adicionado _.groupBy, que agrega um conjunto em grupos de itens como.
- Adicionado _.union e _.difference, para complementar o (re-nomeado) _.intersection.
- Várias melhorias para suporte de matrizes esparsas. _.toArray agora retorna um clone, se passou diretamente uma matriz. _.functions agora também retorna os nomes das funções que estão presentes na cadeia de protótipos.
O que é novo na versão 1.1.6:
- _.after Adicionado, que irá retornar uma função que só é executado depois de ser chamado de um determinado número de vezes. _.invoke pode agora tomar uma referência de função direta. _.every exige agora uma função iteradora a serem passados, o que espelha a API ECMA5. _.extend nenhuma tecla copia mais quando o valor é indefinido. _.bind agora erros ao tentar vincular um valor indefinido.
O que é novo na versão 1.1.4:
- Melhorado cumprimento dos métodos de matriz de ES5 ao passar null como um valor. _.wrap agora define corretamente este para a função de quebra automática. _.indexOf agora leva uma bandeira opcional para encontrar o índice de inserção em uma matriz que é a garantia de ser já classificados.
- Evitar o uso de .callee, para permitir _.isArray funcione corretamente no modo estrito do ES5.
O que é novo na versão 1.1.3:
- Em CommonJS, Sublinhado pode agora ser requerido com apenas :
- var _ = require (& quot; sublinhar & quot;). Adicionado _.throttle funções e _.debounce.
- Removido _.breakLoop, em favor de um estilo ECMA5 un-capaz-break cada aplicação - isto remove o try / catch, e agora você vai ter melhores rastreamentos de pilha para exceções que são lançadas dentro de um iterador sublinhado. Melhorou a família isType de funções para uma melhor interoperabilidade com objetos de host do Internet Explorer. _.template agora escapa corretamente barras invertidas em templates. Melhorada a compatibilidade com a versão _.reduce ECMA5: se você não passar um valor inicial, o primeiro item na coleção é usado. _.each não retorna a coleção iterado, para melhorar a coerência com forEach do ECMA5.
O que é novo na versão 1.0.4:
- função memoize _, que pode ser usado para. acelerar cálculos repetidos caras colocando em cache os resultados.
O que é novo na versão 1.0.2:.
- _.isArguments fixas para Opera
Comentários não encontrado