من و وب

تجربیات روزانه من در حین کار کردن در وب

من و وب

تجربیات روزانه من در حین کار کردن در وب

یک مرد 27 ساله که به زودی قراره بابا بشه. به تازگی کارشو به عنوان طراح قطعات مکانیکی و یه جورایی مدیر پروژه ول کرده. اومده بیرون تا کاری که دوست داره انجام بده. برنامه نویسی و طراحی وب. در طول روز کارهایی که انجام می دم و چیزهایی که یاد می گیرم رو تا اوجایی که می تونم برای خودم وشما می نویسم.
بایگانی
يكشنبه, ۸ آذر ۱۳۹۴، ۰۹:۲۰ ق.ظ

عیب یابی یا debug کردن کدهای جاوااسکریپت

در ادامه آموزش جاوااسکریپت به میحث عیب یابی یا دیباگ کردن کدهای جاوااسکریپت می رسیم. در بسیاری از مواقع مشاهده می کنیم که کد و برنامه مورد نظر ما به خوبی عمل نمی کند. یکی از ابزارهای نسبتا مفید برای یافتن عیب های احتمالی، افزونه firebug فایرفاکس می باشد. در ادامه خطاهای رایج در اجرای کدهای جاوااسکریپت را بررسی می کنیم

1- خطای سینتکس یا خطای املایی

function myFunction( {
    console.log("You called myFunction);
}

window.onload = function() {
    myFunction();
}

در دستور بالا، پرانتز دوم برای بستن دستور function و نیز " برای بستن دستور console.log فراموش شده است. این نوع خطاها از رایج ترین خطاهای موجود در کدهای جاوااسکریپت هستند.

2- خطای حروف کوچک و بزرگ (فراخوانی تابعی که جود ندارد)

function myFunction() {
    console.log("You called myFunction");
}

window.onload = function() {
    myfunction();
}

اگر دستور بالا را اجرا کنیم با خطایی مواجه می شویم که myfunction تعریف نشده است. این خطا به این دلیل است که ما تابع را با نام myFunction با F بزرگ تعریف کرده ایم و برای فراخوانی هم باید همان گونه به صورت myFunction فراخوانی کنیم.

این خطاها در زمان کار کردن با DOM هم رخ می دهند مثلا اشتباه نوشتاری  getElementByID.


3- فراخوانی المان های صفحه قبل از لود شدن.

اگر دستورات getElementById قبل از لود شدن کامل صفحه اجرا شوند، المان مورد نظر قابل انتخاب نخواهد بود پس بهتر است از دستور window.onload استفاده کنیم تا مطمئن باشیم المان ها در صفحه بارگزاری شده اند.


4- استفاده از= به جای === یا ==

به دستور زیر توجه کنید

var a = 10;
var b = 20;

if ( a = b) {
    console.log("Something is wrong with the universe.");
} else {
    console.log("This is what I expect!")
}

این دستور به خودی خود دارای خطا نمی باشد منتها پاسخ اشتباهی به ما می دهد چون در شرایط دستور if  به جای مقایسه دو متغیر، یکی را به دیگری نسبت داده ایم.


5- اشتباه در فراخوانی تابع

به دستور زیر توجه کنید

function calculateSum(a,b,c) {
    return a + b + c;
}

var result = calculateSum(500,1000);
console.log(result);

تابع calculateSum نیاز به سه پارامتر دارد، حال این که ما دو پارامتر به آن داده ایم، در اینجا تابع پاسخ NaN به ما می دهد

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی