ماشین حساب یکی از پروژههای ساده و پرکاربرد برای تمرین جاوا اسکریپت است. با ساخت یک ماشین حساب میتوانید مهارت خود را در دستکاری DOM، مدیریت رویدادها و انجام محاسبات تقویت کنید. در این مقاله به شما نحوه ساخت یک ماشین حساب ساده با جاوا اسکریپت را آموزش میدهیم و همچنین نکات بهینهسازی و سئو مرتبط با استانداردهای گوگل را مرور میکنیم.
ساخت یک ماشین حساب با HTML، CSS و جاوا اسکریپت
انجام عملیات ریاضی پایه (جمع، تفریق، ضرب، تقسیم)
استفاده از DOM برای مدیریت ورودیها و خروجیها
بهینهسازی تجربه کاربری
ابتدا باید یک ساختار HTML برای ماشین حساب ایجاد کنیم که شامل دکمههای اعداد و عملیاتهای ریاضی و یک صفحه نمایش برای نمایش نتایج باشد.
< ! DOCTYPE html >
< html lang="fa" >
< head >
< meta charset="UTF-8" >
< meta name="viewport" content="width=device-width, initial-scale=1.0" >
< title > ماشین حساب < / title >
< style >
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.calculator {
background-color: #fff;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.display {
width: 100%;
height: 50px;
margin-bottom: 10px;
text-align: right;
font-size: 24px;
padding: 10px;
background-color: #eaeaea;
border-radius: 5px;
border: none;
}
.buttons {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 10px;
}
.buttons button {
width: 100%;
padding: 20px;
font-size: 18px;
cursor: pointer;
border-radius: 5px;
border: 1px solid #ddd;
background-color: #f0f0f0;
transition: background-color 0.2s;
}
.buttons button:hover {
background-color: #ddd;
}
.buttons .equals {
background-color: #28a745;
color: white;
}
.buttons .equals:hover {
background-color: #218838;
}
< / style >
< / head >
< body >
< div class="calculator" >
< input type="text" id="display" class="display" disabled >
< div class="buttons" >
< button > 7 < / button >
< button > 8 < / button >
< button > 9 < / button >
< button > / < / button >
< button > 4 < / button >
< button > 5 < / button >
< button > 6 < / button >
< button > * < / button >
< button > 1 < / button >
< button > 2 < / button >
< button > 3 < / button >
< button > - < / button >
< button > 0 < / button >
< button > . < / button >
< button class="equals" > = < / button >
< button > + < / button >
< button class="clear" > C < / button >
< / div >
< / div >
< script src="app.js" > < / script >
< / body >
< / html >
توضیحات HTML:
نمایشگر ماشین حساب: یک ورودی متنی با کلاس display برای نمایش اعداد و نتایج داریم که کاربر نمیتواند به صورت دستی در آن چیزی تایپ کند (از ویژگی disabled استفاده شده است).
دکمههای ماشین حساب: دکمههای اعداد (0 تا 9)، دکمههای عملیات ریاضی (+, -, *, /)، دکمه نقطه (.) و دکمه تساوی (=) برای محاسبات نهایی وجود دارد. همچنین یک دکمه برای پاک کردن (C) وجود دارد.
حالا باید کد جاوا اسکریپت را بنویسیم تا وقتی کاربر روی دکمهها کلیک میکند، مقادیر به درستی در نمایشگر قرار گیرند و محاسبات انجام شود.
در فایل app.js، کد زیر را قرار دهید:
// دسترسی به المانهای صفحه
const display = document.getElementById('display');
const buttons = document.querySelectorAll('.buttons button');
let currentInput = ''; // ورودی فعلی کاربر
let operator = null; // عملگر فعلی
let previousInput = ''; // ورودی قبلی
// اضافه کردن رویداد کلیک به تمامی دکمهها
buttons.forEach(button => {
button.addEventListener('click', () => {
const value = button.textContent;
// اگر دکمه عدد یا نقطه باشد
if (!isNaN(value) || value === '.') {
currentInput += value;
display.value = currentInput;
}
// اگر دکمه عملگر باشد
if (value === '+' || value === '-' || value === '*' || value === '/') {
operator = value;
previousInput = currentInput;
currentInput = ''; // برای ورودی جدید
}
// اگر دکمه مساوی باشد
if (value === '=') {
if (operator && previousInput) {
const result = calculate(previousInput, currentInput, operator);
display.value = result;
currentInput = result; // نتیجه به عنوان ورودی جدید
previousInput = '';
operator = null;
}
}
// اگر دکمه پاک کردن باشد
if (value === 'C') {
clear();
}
});
});
// تابع انجام محاسبات
function calculate(a, b, operator) {
a = parseFloat(a);
b = parseFloat(b);
switch (operator) {
case '+':
return a + b;
case '-':
return a - b;
case '*':
return a * b;
case '/':
return b !== 0 ? a / b : 'خطا';
}
}
// تابع پاک کردن نمایشگر
function clear() {
currentInput = '';
previousInput = '';
operator = null;
display.value = '';
}
توضیحات کد:
currentInput و previousInput: متغیر currentInput برای ذخیره ورودی فعلی کاربر و previousInput برای ذخیره ورودی قبلی است.
دکمههای اعداد و عملگرها: وقتی کاربر روی یکی از دکمههای اعداد یا عملگرها کلیک میکند، ورودی بهروزرسانی میشود و در نمایشگر نمایش داده میشود.
محاسبات: زمانی که دکمه تساوی (=) فشرده میشود، تابع calculate بر اساس عملگر فعلی محاسبات را انجام میدهد و نتیجه را در نمایشگر نشان میدهد.
پاک کردن: دکمه پاک کردن (C) تمامی ورودیها را پاک کرده و نمایشگر را خالی میکند.
برای بهبود تجربه کاربری و عملکرد بهتر ماشین حساب، میتوانیم نکات زیر را اعمال کنیم:
استفاده از Event Delegation: به جای اضافه کردن رویداد کلیک به تمامی دکمهها به صورت جداگانه، میتوانیم از Event Delegation استفاده کنیم و تنها یک رویداد به عنصر والد اضافه کنیم.
نمایش خطا برای تقسیم بر صفر: در صورتی که کاربر بخواهد یک عدد را بر صفر تقسیم کند، یک پیام خطا نمایش داده میشود.
اضافه کردن بازخورد بصری (Visual Feedback): با استفاده از CSS میتوانیم جلوههای بصری بیشتری برای دکمهها ایجاد کنیم تا کاربر هنگام کلیک احساس کند که دکمهها درست کار میکنند.
بارگذاری سریع صفحه: مطمئن شوید که فایلهای جاوا اسکریپت و CSS به صورت بهینه بارگذاری میشوند. از تکنیکهایی مانند minification و compression برای کاهش حجم فایلها استفاده کنید.
استفاده از Lazy Loading برای سایر منابع: اگر در صفحه منابع سنگین دیگری دارید که نیازی به بارگذاری فوری آنها نیست، از تکنیک Lazy Loading استفاده کنید تا سرعت بارگذاری صفحه بهبود یابد.
تجربه کاربری مناسب: دکمههای ماشین حساب باید به گونهای طراحی شوند که در تمامی اندازههای صفحه نمایش به درستی کار کنند. استفاده از طراحی واکنشگرا (Responsive Design) به بهبود تجربه کاربری کمک میکند.
استفاده از ARIA برای دسترسیپذیری: برای بهبود دسترسیپذیری کاربران با نیازهای ویژه، از ویژگیهای ARIA مانند aria-label برای دکمهها استفاده کنید تا کاربران با استفاده از ابزارهای کمکی به راحتی از ماشین حساب استفاده کنند.
ساخت یک ماشین حساب ساده با استفاده از جاوا اسکریپت به شما کمک میکند تا مهارتهای خود را در مدیریت DOM، رویدادها و محاسبات تقویت کنید. با رعایت نکات بهینهسازی و بهبود تجربه کاربری، میتوانید صفحات تعاملی و کارآمدتری بسازید که هم برای کاربران جذاب باشد و هم از نظر سئو به بهبود رتبه سایت شما در موتورهای جستجو کمک کند.
نظری یافت نشد
آموزش تگهای متنی اولیه در HTML: استایلدهی و قالببندی متنها
18م مرداد 1402
مطالعه بیشتر
آموزش موقعیتبندی المانها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed
5م شهریور 1402
مطالعه بیشتر
آموزش کامل ویژگی background در CSS: تنظیمات پسزمینه برای طراحی وب راهنمای جامع
5م شهریور 1402
مطالعه بیشتر
آموزش استفاده از ماژولها (Modules) در جاوا اسکریپت: آشنایی با ES6 Modules - راهنمای کامل
5م آبان 1403
مطالعه بیشتر
آموزش دسترسی به المانهای HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثالها
2م آبان 1403
مطالعه بیشتر
آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکههای پیچیده و واکنشگرا راهنمای کامل
6م شهریور 1402
مطالعه بیشتر
آموزش Responsive Design با استفاده از Media Queries: طراحی واکنشگرا برای تمامی دستگاهها
10م شهریور 1402
مطالعه بیشتر
آموزش تگهای پیوندی و اتصالی در HTML: ایجاد لینکهای داخلی و خارجی
29م مرداد 1402
مطالعه بیشتر
استفاده از clip-path در CSS برای برشهای زیبا و جذاب: راهنمای کامل
16م آبان 1403
مطالعه بیشتر
آموزش طراحی و استایلدهی جدولها در CSS: راهنمای ساده و کاربردی
10م شهریور 1402
مطالعه بیشتر
آموزش کار با Webpack و Bundlers برای مدیریت پروژهها: راهنمای جامع و کاربردی
5م آبان 1403
مطالعه بیشتر
توابع فلش (Arrow Functions) در جاوا اسکریپت: سادهسازی کد با استفاده از ES6
2م شهریور 1403
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد