No passado, usávamos uma variedade de hacks para converter objetos do tipo Array (como arguments
e NodeList
) para uma matriz verdadeira. O senhor pode ver alguns desses hacks aqui:
Essencialmente, usaríamos Array.prototype.slice.call()
no arguments
ou NodeList
para fazer a conversão. Atualmente, há uma solução mais direta para converter um tipo em outro.
Converter NodeList
para Array
var divs = Array.from(document.querySelectorAll('div')); // Array[232] (every DIV on the page)
Converter arguments
para Array
function something() { var args = Array.from(arguments); // Array['yes', 1, {}] } something('yes', 1, {});
Converter String
para Array
Array.from('JavaScript'); // Same as 'JavaScript'.split('') // ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"]
O código é muito mais limpo e não há necessidade de usar o slice
hack!
Eu sou um Impostor
Essa é a coisa mais difícil que já tive de escrever, muito menos admitir para mim mesmo. Já escrevi cartas de demissão de empregos que amava, terminei relacionamentos, fracassei em uma série de tarefas e me decepcionei em minha vida. Todos esses sentimentos foram muito…
CSS @supports
A detecção de recursos via JavaScript é uma prática recomendada do lado do cliente e por todos os motivos certos, mas, infelizmente, essa mesma funcionalidade não está disponível no CSS. O que acabamos fazendo é repetir as mesmas propriedades várias vezes com cada prefixo de navegador. Que nojo. Outra coisa que…
Instagram para MooTools
Se o senhor ainda tem um iPhone e gosta de tirar uma foto de vez em quando, seria louco se não estivesse usando um aplicativo chamado Instagram. Com o Instagram, o usuário tira as fotos da mesma forma que faria com o aplicativo de câmera nativo do iPhone, mas o Instagram…
API de tela cheia
À medida que avançamos em direção a aplicativos da Web mais verdadeiros, nossas APIs JavaScript estão fazendo o possível para acompanhar o ritmo. Uma nova API JavaScript muito simples, mas útil, é a Fullscreen API. A API Fullscreen fornece uma maneira programática de solicitar a exibição em tela cheia do usuário e sair…