
بررسی پاسخهای بخش ۸:
**پاسخ ۱:
- کد واقعاً اجرا میشود و خطایی نمیدهد، اما رفتار نادرست دارد
multiply(5, "2")→5 * "2"→10(رشته “2” به عدد تبدیل میشود)- اما اگر
multiply(5, "hello")باشد:5 * "hello"→NaN - مشکل: تابع ورودیهای نادرست را تشخیص نمیدهد
دیباگینگ با console.log:
function multiply(a, b) {
console.log("نوع a:", typeof a, "مقدار:", a); // 🔍
console.log("نوع b:", typeof b, "مقدار:", b); // 🔍
let result = a * b;
console.log("نتیجه:", result, "نوع:", typeof result); // 🔍
return result;
}
let total = multiply(5, "2");
console.log(total);**پاسخ ۲:
debuggerرا قبل از شرط میگذاریم- سپس در DevTools میتوانیم مقادیر را بررسی کنیم
کد بهبود یافته:
function checkAge(age) {
debugger; // ❗توقف در اینجا
console.log("سن ورودی:", age, "نوع:", typeof age); // 🔍
if (age >= 18) {
return "بزرگسال";
} else {
return "خردسال";
}
}
let status = checkAge(20);**پاسخ ۳:
- خطا:
TypeError(نهReferenceError) - دلیل:
undefined.name→ نمیتوان propertyای از undefined خواند - call stack:
calculate→process→start
خروجی خطا:
TypeError: Cannot read properties of undefined (reading 'name')
at calculate (فایل:خط)
at process (فایل:خط)
at start (فایل:خط)
خلاصه نکات مهم دیباگینگ:
-
انواع خطاها:
ReferenceError: متغیر تعریف نشدهTypeError: عملیات روی نوع نادرستSyntaxError: خطای دستوریRangeError: عدد خارج از محدوده
-
ابزارهای دیباگ:
console.log(): برای دنبال کردن مقادیرdebugger: برای توقف برنامهریزی شدهconsole.trace(): برای نمایش call stack- Breakpoints در DevTools: برای دیباگ پیشرفته
-
best practiceها:
- همیشه نوع دادهها را چک کن
- از ورودیهای کاربر اعتبارسنجی کن
- خطاها را به دقت بخوان (مخصوصاً نوع خطا)
🎉 تبریک! فصل اول دوره مبانی جاوااسکریپت به پایان رسید!
خلاصه آنچه یاد گرفتی:
- ✅ سینتکس پایه و ساختار لغوی
- ✅ متغیرها (var, let, const) و scope
- ✅ انواع داده (رشته، عدد، بولین)
- ✅ عملگرها (حساب، مقایسه، منطق)
- ✅ کنترل جریان (if, else, switch)
- ✅ حلقهها (for, while, do…while)
- ✅ مدیریت خطا (try, catch, finally)
- ✅ دیباگینگ (console.log, debugger, breakpoints)
قدم بعدی: حالا میتوانی با اطمینان کدهای جاوااسکریپت بنویسی، خطاهایش را تشخیص بدی و رفع کنی. برای تمرین بیشتر، سعی کن پروژههای کوچک مثل ماشین حساب یا برنامه مدیریت لیست بسازی.