Retour aux projets
Projet JavaScript · R212 2025

Calculatrice

Calculatrice web développée en JavaScript vanilla pur — sans bibliothèque, sans framework. Gestion complète des opérations arithmétiques, interface responsive en CSS Grid, architecture orientée classe.

Live
15 × 4
60
JS
HTML
CSS
0
0
Librairie utilisée
5
5
Opérations
3
3
Fichiers
1
1
Classe JS

Le projet

Projet R212 du BUT MMI — développer une calculatrice fonctionnelle en JavaScript vanilla, sans jQuery ni aucune bibliothèque externe. L'objectif : maîtriser la manipulation du DOM, la gestion des événements et la logique algorithmique en JS pur.

L'interface est construite avec CSS Grid pour reproduire fidèlement la grille d'une vraie calculatrice. Le layout s'adapte à toutes les tailles d'écran sans media queries.

Les technologies

JavaScript
Logique complète — classe Calculator, gestion des événements, manipulation du DOM, calculs enchaînés.
Classes ES6 · addEventListener · querySelector · data-attributes
HTML5
Structure sémantique avec data-attributes pour identifier les boutons — séparation stricte HTML/JS.
data-number · data-operation · data-output · data-all-clear
CSS Grid
Layout en grille 4 colonnes — boutons span-two pour le 0 et AC. Responsive sans media queries.
grid-template-columns · span · gap · border-radius

Les défis techniques

Architecture
Classe Calculator orientée objet
Encapsuler toute la logique dans une classe — état courant, opérande précédent, opération en attente — sans variable globale.
Classe ES6 avec méthodes clear(), appendNumber(), chooseOperation(), compute().
Data attributes
Séparation HTML / JavaScript
Identifier les boutons sans ajouter de JS dans le HTML — utilisation des data-attributes pour typer chaque bouton.
querySelectorAll('[data-number]') — sélection propre sans classes ni IDs.
Edge cases
Gestion des cas limites
Division par zéro, double virgule, opérations enchaînées, résultat affiché comme opérande.
Conditions de garde à chaque étape — includes('.'), isNaN(), parseFloat().
CSS Grid
Layout fidèle à une vraie calculatrice
Reproduire la grille d'une calculatrice avec le bouton 0 sur 2 colonnes et AC sur 2 colonnes également.
grid-column: span 2 — solution CSS pure, aucun hack.
Tester en ligne

Calculatrice
vanilla JS

Projet R212
BUT MMI · IUT de Troyes · 2025