Estrutura De Dados E Algoritmos Com Javascript

1 view
Skip to first unread message

Rafael Nowning

unread,
Aug 5, 2024, 6:05:09 AM8/5/24
to marputonor
Todasas linguagens de programao tm estruturas de dados embutidas, mas geralmente diferem de uma linguagem para outra. Este artigo tenta listar as estruturas de dados internas disponveis em JavaScript e quais propriedades elas possuem. Estes podem ser usados para construir outras estruturas de dados. Sempre que possvel, so feitas comparaes com outras lnguas.

JavaScript uma linguagem dinmica com tipos dinmicos. As variveis em JavaScript no esto diretamente associadas a nenhum tipo de valor especfico, e qualquer varivel pode receber (e reatribuir) valores de todos os tipos:


Coeres implcitas so muito convenientes, mas podem ser uma arma em potencial se os desenvolvedores no pretendem fazer a converso ou pretendem converter na outra direo (por exemplo, string para nmero em vez de nmero para string). Para symbols e BigInts, o JavaScript desativou intencionalmente certas converses de tipo implcito.


Todos os tipos, exceto objetos, definem valores imutveis (ou seja, valores que no podem ser alterados). Por exemplo, Strings so imutveis. Referimo-nos a valores desses tipos como "valores primitivos".


Nota: Voc pode verificar se um nmero est dentro do intervalo de inteiros seguros usando Number.isSafeInteger(). Fora do intervalo de Number.MIN_SAFE_INTEGER a Number.MAX_SAFE_INTEGER, o JavaScript no pode mais representar inteiros com segurana; eles sero representados por uma aproximao de ponto flutuante de preciso dupla.


Nota: embora os operadores bit a bit podem ser usados para representar vrios valores booleanos em um nico nmero usando mascaramento de bits, isso geralmente considerada uma m prtica. JavaScript oferece outros meios para representar um conjunto de booleanos (como uma matriz de booleanos ou um objeto com valores booleanos atribudos a propriedades nomeadas). O mascaramento de bits tambm tende a tornar o cdigo mais difcil de ler, entender e manter.


Pode ser necessrio usar essas tcnicas em ambientes muito restritos, como ao tentar lidar com as limitaes do armazenamento local ou em casos extremos (como quando cada bit na rede conta). Esta tcnica s deve ser considerada quando for a ltima medida que pode ser tomada para otimizar o tamanho.


O tipo BigInt uma primitiva numrica em JavaScript que pode representar inteiros com preciso arbitrria. Com BigInts, voc pode armazenar e operar com segurana em grandes nmeros inteiros, mesmo alm do limite de nmeros inteiros seguros.


Voc pode obter o maior valor seguro que pode ser incrementado com Numbers usando a constante Number.MAX_SAFE_INTEGER. Com a introduo do BigInts, voc pode operar com nmeros alm do Number.MAX_SAFE_INTEGER.


NaN ("Not a Number") normalmente encontrado quando o resultado de uma operao aritmtica no pode ser expresso como um nmero. tambm o nico valor em JavaScript que no igual a si mesmo.


O tipo String do JavaScript usado para representar dados textuais. um conjunto de "elementos" de valores inteiros sem sinal de 16 bits. Cada elemento na String ocupa uma posio na String. O primeiro elemento est no ndice 0, o prximo no ndice 1 e assim por diante. O comprimento de uma String o nmero de elementos nela.


Com convenes, possvel representar qualquer estrutura de dados em uma string. Isso no faz com que seja uma boa ideia. Por exemplo, com um separador, pode-se emular uma lista (enquanto um array JavaScript seria mais adequado). Infelizmente, quando o separador usado em um dos elementos da "lista", a lista quebrada. Um caractere de escape pode ser escolhido, etc. Tudo isso requer convenes e cria uma carga de manuteno desnecessria.


Um Symbol um valor primitivo nico e imutvel e pode ser usado como a chave de uma propriedade Object (veja abaixo). Em algumas linguagens de programao, os smbolos so chamados de "tomos".


Em JavaScript, os objetos podem ser vistos como uma coleo de propriedades. Com a sintaxe literal de objeto, um conjunto limitado de propriedades inicializado; ento as propriedades podem ser adicionadas e removidas. Os valores de propriedade podem ser valores de qualquer tipo, incluindo outros objetos, o que permite construir estruturas de dados complexas. As propriedades so identificadas usando valores key. Um valor key um String value ou um Symbol value.


Existem dois tipos de propriedades de objeto: A data property e a accessor property. Cada propriedade tem attributes correspondentes. Cada atributo acessado internamente pelo mecanismo JavaScript, mas voc pode defini-los por meio de Object.defineProperty() ou l-los por meio de Object.getOwnPropertyDescriptor(). Voc pode ler mais sobre as vrias nuances na pgina Object.defineProperty().


Um valor booleano que indica se a propriedade pode ser enumerada por um loop for...in. Consulte tambm Enumerabilidade e propriedade de propriedades para saber como a enumerabilidade interage com outras funes e sintaxes.


Alm disso, arrays herdam de Array.prototype, que fornece a eles um punhado de mtodos convenientes para manipular arrays. Por exemplo, indexOf() (pesquisando um valor no array) ou [push()](/en- US/docs/Web/JavaScript/Reference/Global_Objects/Array/push) (adicionando um elemento matriz) e assim por diante. Isso torna os Arrays um candidato perfeito para representar listas ou conjuntos.


Typed Arrays apresentam uma viso semelhante a um array de um buffer de dados binrios subjacente e oferecem muitos mtodos que tm semntica semelhante aos equivalentes de array. "Typed array" um termo abrangente para uma variedade de estruturas de dados, incluindo Int8Array, Float32Array, etc. Verifique a pgina typed array para obter mais informaes .


Normalmente, para vincular dados a um n DOM, pode-se definir propriedades diretamente no objeto ou usar atributos data-*. Isso tem a desvantagem de que os dados esto disponveis para qualquer script em execuo no mesmo contexto. Maps e WeakMaps facilitam privately vincular dados a um objeto.


Todos os tipos, exceto objetos, definem valores imutveis (ou seja, valores que no podem ser alterados). Por exemplo, Strings so imutveis. Referimo-nos a valores desses tipos como \"valores primitivos\".


NaN (\"Not a Number\") normalmente encontrado quando o resultado de uma operao aritmtica no pode ser expresso como um nmero. tambm o nico valor em JavaScript que no igual a si mesmo.


O tipo String do JavaScript usado para representar dados textuais. um conjunto de \"elementos\" de valores inteiros sem sinal de 16 bits. Cada elemento na String ocupa uma posio na String. O primeiro elemento est no ndice 0, o prximo no ndice 1 e assim por diante. O comprimento de uma String o nmero de elementos nela.


Com convenes, possvel representar qualquer estrutura de dados em uma string. Isso no faz com que seja uma boa ideia. Por exemplo, com um separador, pode-se emular uma lista (enquanto um array JavaScript seria mais adequado). Infelizmente, quando o separador usado em um dos elementos da \"lista\", a lista quebrada. Um caractere de escape pode ser escolhido, etc. Tudo isso requer convenes e cria uma carga de manuteno desnecessria.


Um Symbol um valor primitivo nico e imutvel e pode ser usado como a chave de uma propriedade Object (veja abaixo). Em algumas linguagens de programao, os smbolos so chamados de \"tomos\".

3a8082e126
Reply all
Reply to author
Forward
0 new messages