Este é um projeto de uma calculadora simples desenvolvida em HTML, CSS e JavaScript. A calculadora permite realizar operações básicas como adição, subtração, multiplicação, divisão e cálculos percentuais.
Esta calculadora é uma aplicação web que utiliza JavaScript para capturar eventos de botões e atualizar dinamicamente o visor de texto conforme os botões são pressionados. Ela suporta tanto a entrada de teclado quanto o clique em botões para operações matemáticas.
- Adição de Números: Botões numéricos adicionam números ao visor.
- Operações: Botões de operações (+, -, *, /, %) permitem realizar cálculos.
- Limpar: Botão "C" limpa o visor.
- Resultado: Botão "=" calcula o resultado da expressão matemática no visor.
- Tecla Enter: A tecla Enter também calcula o resultado.
- Clique nos botões numéricos e de operações para construir uma expressão matemática.
- Utilize o botão "C" para limpar o visor.
- Pressione "=" ou Enter para calcular o resultado da expressão.
Este projeto utiliza diversos conceitos de JavaScript e desenvolvimento web, detalhados a seguir:
-
Manipulação do DOM: O projeto faz uso de métodos como
document.querySelector()para acessar elementos da página HTML e manipular seus valores dinamicamente. -
Eventos de DOM: Os eventos de clique (com
addEventListener) são utilizados para capturar as interações do usuário com os botões da calculadora, assim como o evento de teclado para detectar a tecla Enter. -
Funções Factory: A implementação da calculadora utiliza uma função factory (
criaCalculadora()) para criar uma instância da calculadora, encapsulando a lógica e retornando métodos como um objeto. Esse padrão permite maior flexibilidade e reaproveitamento de código. -
Constructor Function: Além da abordagem com Factory Function, também foi utilizada uma Constructor Function para criar a calculadora. O uso de constructor permite a criação de objetos com base em uma função construtora, utilizando o operador
new. A vantagem dessa abordagem é a possibilidade de reutilizar a mesma função para criar várias instâncias de objetos, mantendo a consistência da lógica interna. -
Comparação entre Factory Function e Constructor Function:
-
Factory Function: É uma função que cria e retorna objetos, sem o uso de
new. O retorno é explícito, e ela encapsula o estado e comportamento do objeto, permitindo que cada instância tenha seus próprios métodos e propriedades. -
Constructor Function: É uma função especial usada com o operador
new, que cria um objeto, vinculathisa esse novo objeto e retorna automaticamente o objeto. Essa abordagem é comum em orientação a objetos em JavaScript, utilizandothispara referenciar o objeto criado.
Diferenças:
- Factory Function oferece maior flexibilidade, podendo encapsular a lógica de criação e até retornar tipos diferentes de objetos, se necessário.
- Constructor Function é mais tradicional para criar múltiplas instâncias de objetos com a mesma estrutura, seguindo um padrão de programação orientada a objetos.
-
-
Tratamento de Erros: A função
Resultado()faz uso detry...catchpara capturar erros na avaliação das expressões matemáticas, evitando que a aplicação quebre caso o usuário insira uma expressão inválida. -
Uso de
eval(): A funçãoeval()é utilizada para calcular o resultado das expressões matemáticas inseridas pelo usuário. No entanto, seu uso deve ser feito com cuidado, poiseval()pode executar código arbitrário.
