ماشین حساب یکی از پروژههای ساده و پرکاربرد برای تمرین جاوا اسکریپت است. با ساخت یک ماشین حساب میتوانید مهارت خود را در دستکاری 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، رویدادها و محاسبات تقویت کنید. با رعایت نکات بهینهسازی و بهبود تجربه کاربری، میتوانید صفحات تعاملی و کارآمدتری بسازید که هم برای کاربران جذاب باشد و هم از نظر سئو به بهبود رتبه سایت شما در موتورهای جستجو کمک کند.
نظری یافت نشد
آموزش موقعیتبندی المانها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed
5م شهریور 1402
مطالعه بیشتر
آموزش کار با رویدادهای فرم و اعتبارسنجی فرمها در جاوا اسکریپت: راهنمای جامع
3م آبان 1403
مطالعه بیشتر
آموزش استفاده از cubic-bezier در CSS برای انیمیشنهای سفارشی و حرفهای
12م آبان 1403
مطالعه بیشتر
آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایههای زیبا و جذاب
11م آبان 1403
مطالعه بیشتر
آموزش توسعه بازیهای ساده با استفاده از جاوا اسکریپت و Canvas API: راهنمای گام به گام
5م آبان 1403
مطالعه بیشتر
آموزش توسعه و مدیریت پروژههای بزرگ در جاوا اسکریپت: آشنایی با ابزارها و فریمورکهای کاربردی
4م آبان 1403
مطالعه بیشتر
آموزش دسترسی به المانهای HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثالها
2م آبان 1403
مطالعه بیشتر
استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع
9م آبان 1403
مطالعه بیشتر
آموزش CSS Transform و Transition: تبدیلها و ایجاد تغییرات ظاهری پویا
10م شهریور 1402
مطالعه بیشتر
آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر
2م بهمن 1402
مطالعه بیشتر
کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیکهای مقیاسپذیر
16م آبان 1403
مطالعه بیشتر
نصب Vue.js و ایجاد پروژه ساده: آموزش گامبهگام راهاندازی Vue
28م شهریور 1402
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد