آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثال‌های کاربردی

دسته : آموزش رایگان جاوا اسکریپت (JavaScript)

آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثال‌های کاربردی

آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثال‌های کاربردی

ماشین حساب یکی از پروژه‌های ساده و پرکاربرد برای تمرین جاوا اسکریپت است. با ساخت یک ماشین حساب می‌توانید مهارت خود را در دستکاری 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، رویدادها و محاسبات تقویت کنید. با رعایت نکات بهینه‌سازی و بهبود تجربه کاربری، می‌توانید صفحات تعاملی و کارآمدتری بسازید که هم برای کاربران جذاب باشد و هم از نظر سئو به بهبود رتبه سایت شما در موتورهای جستجو کمک کند.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed

آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed

5م شهریور 1402

مطالعه بیشتر

آموزش کار با رویدادهای فرم و اعتبارسنجی فرم‌ها در جاوا اسکریپت: راهنمای جامع

آموزش کار با رویدادهای فرم و اعتبارسنجی فرم‌ها در جاوا اسکریپت: راهنمای جامع

3م آبان 1403

مطالعه بیشتر

آموزش استفاده از cubic-bezier در CSS برای انیمیشن‌های سفارشی و حرفه‌ای

آموزش استفاده از cubic-bezier در CSS برای انیمیشن‌های سفارشی و حرفه‌ای

12م آبان 1403

مطالعه بیشتر

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

11م آبان 1403

مطالعه بیشتر

آموزش توسعه بازی‌های ساده با استفاده از جاوا اسکریپت و Canvas API: راهنمای گام به گام

آموزش توسعه بازی‌های ساده با استفاده از جاوا اسکریپت و Canvas API: راهنمای گام به گام

5م آبان 1403

مطالعه بیشتر

آموزش توسعه و مدیریت پروژه‌های بزرگ در جاوا اسکریپت: آشنایی با ابزارها و فریم‌ورک‌های کاربردی

آموزش توسعه و مدیریت پروژه‌های بزرگ در جاوا اسکریپت: آشنایی با ابزارها و فریم‌ورک‌های کاربردی

4م آبان 1403

مطالعه بیشتر

آموزش دسترسی به المان‌های HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثال‌ها

آموزش دسترسی به المان‌های HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثال‌ها

2م آبان 1403

مطالعه بیشتر

استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع

استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع

9م آبان 1403

مطالعه بیشتر

آموزش CSS Transform و Transition: تبدیل‌ها و ایجاد تغییرات ظاهری پویا

آموزش CSS Transform و Transition: تبدیل‌ها و ایجاد تغییرات ظاهری پویا

10م شهریور 1402

مطالعه بیشتر

آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر

آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر

2م بهمن 1402

مطالعه بیشتر

کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر

کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر

16م آبان 1403

مطالعه بیشتر

نصب Vue.js و ایجاد پروژه ساده: آموزش گام‌به‌گام راه‌اندازی Vue

نصب Vue.js و ایجاد پروژه ساده: آموزش گام‌به‌گام راه‌اندازی Vue

28م شهریور 1402

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد