Introdução ao JavaScript
JavaScript também abrevia como JS é uma linguagem de programação interpretada de alto nível. JavaScript é uma das três principais tecnologias da World Wide Web. O JavaScript permite criar páginas da web interativas que não sejam estáticas. A maioria dos sites usa JS para o desenvolvimento e os principais navegadores da Web têm o mecanismo JavaScript para executá-lo. O JavaScript é uma linguagem de programação interpretada leve, de tipo fraco, com base em protótipo e com recursos orientados a objetos. O JavaScript é usado para o desenvolvimento de aplicativos da Web no lado do cliente, é incluído ou referenciado por um arquivo HTML para que o código seja renderizado no navegador. Atualmente, o JavaScript não é usado apenas para o desenvolvimento do lado do cliente, mas também para a programação do lado do servidor, existem várias estruturas disponíveis que são criadas usando JavaScript como o Node.js. O Node.js possui muitos módulos para o desenvolvimento de microsserviços, APIs, conexões com o banco de dados e muito mais. O mecanismo JavaScript do lado do cliente oferece muitas vantagens sobre os scripts CGI tradicionais. O JavaScript pode ser usado para agir com base em eventos iniciados pelo usuário, como clicar nos botões, navegações, mensagens pop-up etc., e também é usado para validação do lado do cliente. por exemplo, você pode validar os campos como email, senha etc. no formulário antes de enviá-lo ao servidor da web.
O JavaScript é orientado a objetos?
O tópico sobre se o JavaScript é uma linguagem pura ou não orientada a objetos é sempre discutível. Então agora vamos esclarecer que é Javascript Orientado a Objetos, porque alguns dizem que não é Orientado a Objetos, porque não possui nenhuma classe e não pode implementar conceitos de OOPs como herança ou encapsulamento, e alguns dizem que é uma linguagem Orientada a Objetos. Antes de discutir este tópico JavaScript Orientado a Objetos, deve-se entender que o que torna uma linguagem de programação uma linguagem de programação Orientada a Objetos?
Existem poucas características importantes de uma linguagem orientada a objetos:
-
Polimorfismo:
A capacidade do objeto de assumir várias formas. Por exemplo, a função pode ser sobrecarregada com o mesmo nome, mas com parâmetros diferentes.
-
Encapsulamento:
Vinculando todos os dados e operações e mantendo-os em uma classe.
-
Herança:
A classe filho pode ser derivada da classe pai com todos os recursos da classe pai e algumas propriedades próprias.
Os três princípios acima mencionados formam a base de uma linguagem orientada a objetos.
Portanto, o JavaScript pode não seguir o paradigma exato dos Princípios Orientados a Objetos, mas o JavaScript tem maneiras diferentes de implementar o OOP.podemos demonstrar como o JavaScript segue os Princípios Orientados a Objetos, usando alguns exemplos:
Encapsulamento:
A idéia do encapsulamento é que os dados de um objeto não devam ser acessados diretamente, mas sim através de alguns métodos. Porém, em JavaScript, não há conceito de classe e objetos que implementem o encapsulamento de duas maneiras: Escopo e Fechamento de Função
1) Escopo da Função:
Isso nada mais é do que declarar as variáveis dentro das funções. Portanto, o escopo das variáveis será limitado apenas a funções e outros objetos não podem acessar as variáveis. Vamos dar um exemplo para demonstrar o escopo da função.
teste de funcionamento()
(
valor var = "Olá!";
alerta (valor) // "Olá!";
)
alerta (valor) // erro; O valor não está disponível fora da função.
2) Encerramentos:
O fechamento é um escopo interno que tem acesso a variáveis declaradas fora de seu bloco, mesmo depois que essas variáveis caem fora do escopo. Embora os métodos de um objeto não possam acessar as outras variáveis locais, um objeto interno tem acesso a variáveis de sua função pai. Vamos dar um exemplo para entender isso.
var person = (
var name = “JavaScript”;
return (
setName : function(value)(
name = value;
),
getName : function()(
return name;
)
);
);
alert(person.name) //JavaScript
person.setName(“Java”)
alert(person.name) //Java
Portanto, dessa maneira, podemos declarar objetos ou métodos internos para ocultar os dados e esses podem ser acessados usando objetos-pai.
Herança:
O JavaScript suporta herança por meio do conceito chamado herança Prototípica permite que o objeto JavaScript adquira todos ou alguns dos recursos de outros objetos ou objetos pai.
1) Protótipo:
JavaScript é descrito como linguagem baseada em protótipo, para fornecer um objeto de herança pode ter um objeto de protótipo que herda métodos e propriedades de outros objetos. Um objeto de protótipo de objetos também pode ter um objeto de protótipo que herda métodos e propriedades de seu objeto pai e assim por diante, isso é chamado de cadeia de protótipo.
A imagem acima mostra todas as propriedades do objeto "animal" que está sendo criado. Portanto, o "nome" e o "tipo" são as propriedades de um objeto "animal" e as propriedades como valueOf, toString, toLocaleString etc. são as propriedades de um objeto pai que são herdadas do objeto animal. Consulte a imagem abaixo que mostra as propriedades do objeto pai usando a propriedade proto.
Polimorfismo:
Poli significa "muitos", morfismo significa "formas", polimorfismo nada mais é do que ter formas diferentes. No JavaScript, o polimorfismo é obtido através da subtipagem genérica, de sobrecarga e estrutural.
1) Genéricos (polimorfismo paramétrico):
Isso diz que o tipo da variável não importa, eles são intercambiáveis. Uma função que define um ou mais parâmetros do tipo polimórfico paramétrico não deve saber nada sobre os tipos; deve tratar todos eles da mesma forma, pois pode se adaptar a qualquer um dos tipos. Consulte o exemplo abaixo
dados const = x => y => y.concat (x);
dados (3) ((1, 2)); // (1, 2, 3)
dados ("c") (("a", "b")); // ("a", "b", "c")
2) Sobrecarga (polimorfismo ad-hoc):
A sobrecarga no JavaScript é obtida usando o polimorfismo as-hoc. O polimorfismo ad-hoc é um tipo de polimorfismo no qual as funções polimórficas podem ser aplicadas a argumentos de vários tipos, porque as funções polimórficas podem denotar o número de implementações heterogêneas distintas, dependendo dos tipos de argumentos. Consulte o exemplo abaixo mencionado
O operador "+" é usado de várias maneiras, como adicionar números, concatenar as strings etc.
1 + 2 = 3
1, 2 + 2, 3 = 3, 5
"Java" + "Script" = "JavaScript"
3) Subtipagem estrutural (polimorfismo estrutural):
O polimorfismo estrutural diz que tipos diferentes são equivalentes, por exemplo, se um tipo tem todas as propriedades do outro tipo, além de algumas propriedades adicionais (seguindo a mesma estrutura)
Const peso = (valor: 100, dados: verdadeiro)
Const speed = (valor: 200, dados: false, foo: (1, 2, 3))
A velocidade é considerada um subtipo de peso.
Conclusão - O Javascript é orientado a objetos?
Como estávamos discutindo, o Javascript é orientado a objetos, agora podemos concluir que o JavaScript é uma linguagem orientada a objetos. Embora não tenha classes reais, ainda é uma linguagem orientada a objetos, porque segue os conceitos principais dos princípios orientados a objetos. Portanto, uma linguagem pode ser orientada a objetos se suportar objetos mesmo sem classes.
Artigos recomendados
Este foi um guia para o Javascript orientado a objetos. Aqui discutimos os conceitos básicos e as características de Javascript e Orientado a Objeto. Você também pode consultar os seguintes artigos:
- JavaScript vs VBScript
- Usos do JavaScript
- JavaScript vs AngularJS
- JavaScript vs Node JS
- Guia abrangente para objetos em Java
- Objeto em Python
- Exemplos e como os genéricos funcionam em c #