JS-0403 - JavaScript Completo ES6 - Object Native, Host e User

JS-0403 - JavaScript Completo ES6 - Object Native, Host e User
Publicado em 27/01/24 16:01
Visualizações: 698

A diferença entre os objetos de acordo com o ambiente

Em JS existem três diferentes tipos de objetos: Native(nativos da linguagem), Host (implementação da engine) e User (objetos criados pela aplicação).

Os Objetos Nativos, também chamados de Objetos Globais são os definidos na especificação da linguagem e são implementados em qualquer navegador, idependente da tecnologia utilizada. são exemplos de objetos nativos: Object, String, Array, Function entre outros (veja a lista completa aqui).

Já os Objetos de Host são os implementados pelo ambiente onde são interpretados. Como exemplo, os navegadores possuem objetos do DOM, como DomList, HTMLCollection e outros, já em Node.js os objetos do Host são diferentes, pois não são interpretados em um ambiente de navegação. Exemplos de objetos de host: NodeList, HTMLCollection, Element entre outros.

Por último, os Objetos de Usuário, são os objetos definidos pela aplicação, criados ou importados por alguma biblioteca externa.

Diferentes tipos de navegadores ou versões poderão implementar os objetos de host de modos diferentes. Ainda que haja uma tentativa de padronização, alguns objetos, métodos e propriedades são específicos do host. Os mais usados geralmente são compatíveis. Algumas bibliotecas reduzem a incompatibilidade do código entre os diferentes navegadores, tal como o jQuery e o Babel por exemplo. Como exemplo,  navegadores que não implementaram o ECMAScript 2015 (ES6), não possuem o método "find" de Array.

A organização ECMA foi responsável por definir o padrão para tecnologias de suporte para a linguagem JS, chamado de ECMAScript. Em 2015, foi lançada a sexta versão do ECMAScript (ES6).

Outro fator de influência dos objetos é a Engine (mecanismo de renderização) dos navegadores, tal como o V8 (Google Chrome e Node.js), SpiderMonkey (Mozzila Firefox), Chakra (IE Edge), JavaScriptCore (Safari) etc.

As bibliotecas, além de resolver os problemas de inconsistências, podem adicionar novas funcionalidades que não existem nativamente. Uma das mais utilizadas, o jQuery, possue diversos métodos que simplificam a codificação, seja adição de classes com o método "addClass", seja com a manipulação da opacidade de um elemento com o "fadeIn".

Atualmente a consistência entre navegadores está aumentando, tornando as bibliotecas desnecessárias dependendo do tipo, propósito e funcionalidades da aplicação.

Para  verificar se um objeto, método ou propriedade existe, podemos utilizar o operador typeof. Se não existir, o retorno será undefinded. Ex:

JS-0403 - JavaScript Completo ES6 - Object Native, Host e User

A API (Application Programming Interface) é a interface criada para a interação entre softwares. Quando interagimos através dos navegadores com a linguagem estamos, na verdade, utilizando a API do navegador, desenvolvida para este fim.

Veja também:

Confira mais artigos relacionados

Este website utiliza cookies próprios e de terceiros a fim de personalizar o conteúdo, melhorar a experiência do usuário, fornecer funções de mídias sociais e analisar o tráfego. Para continuar navegando você deve concordar com nossa Política de Privacidade

Aceito Não aceito