آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثالهای کاربردی
ماشین حساب یکی از پروژههای ساده و پرکاربرد برای تمرین جاوا اسکریپت است. با ساخت یک ماشین حساب میتوانید مهارت خود را در دستکاری DOM، مدیریت رویدادها و انجام محاسبات تقویت کنید. در این مقاله به شما نحوه ساخت یک ماشین حساب ساده با جاوا اسکریپت را آموزش میدهیم و همچنین نکات بهینهسازی و سئو مرتبط با استانداردهای گوگل را مرور میکنیم.
اهداف این مقاله:
ساخت یک ماشین حساب با HTML، CSS و جاوا اسکریپت
انجام عملیات ریاضی پایه (جمع، تفریق، ضرب، تقسیم)
استفاده از DOM برای مدیریت ورودیها و خروجیها
بهینهسازی تجربه کاربری
گام اول: ساختار HTML ماشین حساب
ابتدا باید یک ساختار 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، رویدادها و محاسبات تقویت کنید. با رعایت نکات بهینهسازی و بهبود تجربه کاربری، میتوانید صفحات تعاملی و کارآمدتری بسازید که هم برای کاربران جذاب باشد و هم از نظر سئو به بهبود رتبه سایت شما در موتورهای جستجو کمک کند.
پرسش و پاسخ
نظری یافت نشد
برای ارسال نظر ابتدا وارد شوید