خطایابی در جاوا اسکریپت به چه شکل است؟

چهارشنبه 26 تیر 1398

خطایابی در جاوا اسکریپت کار نسبتا سختی می باشد، در این مطلب قصد داریم نکاتی مفید برای خطایابی در جاوا اسکریپت را برای شما بیان کنیم.

 خطایابی در جاوا اسکریپت به چه شکل است؟

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

آنچه ما در حال حاضر قصد انجام آن را داریم بحث درباره چیزهایی است که ما می توانیم آنها را برای هر کدام از باگ ها و خطاهای کدهای خود امتحان کنیم و به همین دلیل باگ های بسیار زیادی وجود دارد که ما باید آنها را بررسی کنیم و البته روش های منحصر به فردی که برای خطایابی در جاوا اسکریپت برای این باگ ها و خطاها وجود دارد را نیز بررسی کنیم.


کارهایی که برای خطایابی در جاوا اسکریپت برای هر کدام از انواع باگ ها باید انجام دهید( بخش اول)

1-      آرام باشید، شما می توانید این مشکل و باگ را حل کنید.

2-      کمک بگیرید، آیا شما خوشحال نمی شوید زمانی که شخص دیگری مشکلات برنامه نویسی خود را از شما می پرسد؟ شخص دیگری نیز همین قدر خوشحال می شود که بتواند به شما در حل مشکل کدتان و خطایابی در جاوا اسکریپت کمک کند. لازم نیست کسی که شما را کمک می کند بیشتر از شما اطلاعات داشته باشد، تنها داشتن دید تازه نسبت به کدهای شما می تواند کمک زیادی در خطایابی در جاوا اسکریپت کند.

 خطایابی در جاوا اسکریپت


کارهایی که برای خطایابی در جاوا اسکریپت برای هر کدام از انواع باگ ها باید انجام دهید( بخش دوم)

3-      استراحت کنید، در زمان خستگی نمی توانید به راحتی مشکل خود را حل کنید، اگر نمی توانید استراحت کنید سعی کنید وقت خود را بر روی یک پروژه دیگر و یا قسمت دیگری از برنامه خود صرف کنید.

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

5-      اگر در یک نقطه ارور دارید که خودتان مطمئن هستید این ارور مربوط به همان نقطه است سعی کنید بخش های بزرگ کد خود را تبدیل به بخش های کوچکتر کنید، تا زمانی این کار را انجام دهید که دلیل ارور در این بخش برای شما مشخص شود. اگر بعد از انجام این کار باز هم نتوانستید متوجه شوید که این ارور مربوط به کدام بخش می باشد سعی کنید کد جدیدی را برای کاری که در این بخش انجام می دهید بنویسید، گاهی اوقات یک ارور کوچک می تواند باعث شود که تا مدت ها از برنامه نویسی خسته شوید، بنابراین سعی کنید زمانی که نمی توانید یک ارور را برطرف کنید روش جدیدی را برای پیاده سازی این بخش انتخاب کنید.

6-      داکیومنت ها را مطالعه کنید، دوباره مطالعه کنید، کسی را پیدا کنید که بتواند آنها را به خوبی برای شما توضیح دهد.

7-      از پیغام های خطا در برنامه نویسی نترسید، آنها تنها برای کمک به شما هستند.

 خطایابی در جاوا اسکریپت


یک لیست ناقص برای جلوگیری از به وجود آمدن باگ در در کد نویسی( بخش اول)

-          به محض اینکه کد خود را نوشتید، آن را تست کنید، یک کد اصلی برای برنامه خود بنویسید و بررسی کنید که آیا می توانید آن را مدیریت کرده و پاسخ های مورد انتظار خود را دریافت کنید؟ در مرحله بعدی یک کامپوننت react بنویسید و ببینید که آیا می تواند موارد مورد انتظار شما را اجرا کند یا خیر؟

-          یک روش فوق العاده این است که برای کدهای خود تست بنویسید( درحقیقت بهتر است که قبل از نوشتن کدها برای آنها تست هایی را بنویسید) به این شکل اگر شما بخشی از کد خود را بنویسید و بعدها عامل دیگری باعث به وجود آمدن باگ در برنامه شما شود، شما می توانید با اجرا کردن تست های خود در حین خطایابی در جاوا اسکریپت اطمینان حاصل کنید که بخشی که در حال حاضر نوشته اید به درستی کار می کند.( به جای اینکه هر ویژگی را دوباره آزمایش کنید)

 خطایابی در جاوا اسکریپت


یک لیست ناقص برای جلوگیری از به وجود آمدن باگ در در کدنویسی( بخش دوم)

-          از امکانات گیت استفاده کنید و سعی کنید که توضیحات خود را درباره کدتان به صورت جالب به کاربران ارائه دهید.

-          بر روی ویژگی های کلیدی و تکنیکال در زمینه خود کار کنید، به این ترتیب حتی اگر همه چیز از بین برود شما می توانید به راحتی به آخرین نسخه برنامه خود بازگردید.

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

 خطایابی در جاوا اسکریپت


ارورهای واضح  یا Loud

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

 خطایابی در جاوا اسکریپت


اقداماتی که برای خطایابی در جاوا اسکریپت برای ارورهای Loud باید انجام دهید

1-      پیغام مربوط به خطا را بخوانید.

2-      stack trace را بررسی کنید تا متوجه شوید این ارور دقیقا در کدام خط از کدهای شما اتفاق افتاده است، شما باید به صورت دقیق نام فایل و خطی که این ارور اتفاق افتاده است را بیابید.

3-      اگر این ارور در ماژول اصلی شما اتفاق افتاده است stack trace را اسکرول کنید به این امید که بتوانید دقیقا بیتی که این ارور در آن اتفاق افتاده است را پیدا کنید، اگر شما همه چیز را بررسی کردید و هیچ یک از این موارد در کد شما وجود نداشت گام بعدی که در خطایابی در جاوا اسکریپت باید انجام دهید این است که بررسی کنید که کدام یک از ماژول های برنامه شما باعث به وجود آمدن این ارور شده است و سپس بررسی کنید که از این ماژول در کدام قسمت از کد خود استفاده کرده اید.

 خطایابی در جاوا اسکریپت


انواع پیغام های خطا که در خطایابی در جاوا اسکریپت با آنها روبرو می شوید( بخش اول)

در اینجا 6 مورد از پیغام های خطایی که در خطایابی در جاوا اسکریپت با آنها روبرو می شوید را برای شما آورده ایم، سه مورد اول را معمولا شما در حین خطایابی در جاوا اسکریپت مشاهده می کنید اما سایر آنها را احتمالا زیاد مشاهده نکرده باشید.
ارور مربوط به سینتکس یا سینتکس ارور:

کد شما تجزیه نمی شود و یا به عبارت دیگر شما در جایی از کد اشتباه کرده اید.

1-      خطی که این ارور در آن اتفاق افتاده است را بررسی کنید.

2-      می دانیم که سینتکس ارورها دقیقا در نقطه ای رخ می دهند که برنامه در آنجا متوقف شده است. در بیشتر مواقع نیز ممکن است که خطای واقعی در خط بالایی و یا پایینی نقطه ای باشد که برنامه در آن نقطه متوقف شده است.


Type error:

کد شما انتظار دارد که یک متغیر از یک نوع خاص باشد اما در حقیقت این متغیر دارای یک مقدار از نوع دیگری است. این مورد را ممکن است بسیار دیده باشید چرا که این ارور ممکن است به دلایل گوناگونی اتفاق بیفتد. پیغام های خطایی مانند “cannot read {property} of undefined”  و یا “{such and such} is not a function” معمولا از این دست ارورها می باشند. در اینجا قصد داریم لیستی از راه حل های غیر حرفه ای را در اختیار شما قرار دهیم که به شما این امکان را می دهد که بدانید باید از کجا شروع کنید.

1-      از دستور console.log(typeof offendingVariable) استفاده کنید تا ببینید که برنامه شما در این مرحله انتظار چه نوع متغیری را دارد.

2-      فرمت تابع خود را بررسی کنید آیا تابع شما ساختار درستی دارد؟

3-      آیا داده شما به جایی که باید باشد منتقل شده است؟( از console.log برای نمایش آرگومان های توابع و یا حتی در برخی از مواقع برای نمایش نوع آنها در خطایابی در جاوا اسکریپت استفاده کنید)

4-      اگر اروری که در خطایابی در جاوا اسکریپت با آن روبرو شده اید در هنگام شروع کار با یک کتابخانه اتفاق افتاده است داکیومنتیشن مربوط به کتابخانه را به دقت مطالعه کنید تا مطمئن شوید که به درستی از آن استفاده کرده اید.

5-      سعی کنید که افراد دیگری را در اینترنت پیدا کنید که از این ابزار استفاده کرده اند.

 خطایابی در جاوا اسکریپت


انواع پیغام های خطا که در خطایابی در جاوا اسکریپت با آنها روبرو می شوید( بخش دوم)


ReferenceError:

برنامه را به یک متغیر ارجاع می دهید که اصلا وجود ندارد، نتیجه این است که: شما باید به جایی که فکر می کنید آن را تعریف کرده اید و یا به جایی که باید آن را تعریف کنید ارجاع کنید. با مراجعه به این نقطه در هنگام خطایابی در جاوا اسکریپت می توانید مشاهده کنید که الف) یک اشتباه مرتکب شده اید

 ب) مقدار نادرستی به آن وارد و یا از آن خارج کرده اید

 ج) اصلا آن را در این بخش تعریف نکرده اید

 د) یک خطای مربوط به محدوده تعریف دارید( به عنوان مثال یک متغیر را در داخل دستور if تعریف کرده اید و از خارج آن اقدام به ارجاع دهی این متغیر کرده اید)


RangeError:

زمانی که یک متغیر عددی دارای مقداری بیش از مقدار تعریف شده برای آن باشد این ارور اتفاق می افتد.( راه حل: ریاضیات پیشرفته را در این جاوا اسکریپت انجام ندهید و یا اگر قصد انجام این کار را دارید از کتابخانه های مخصوص ریاضی برای این کار استفاده کنید.


EvalError:

شما به اشتباه از دستور eval() استفاده کرده اید. اگر شما این ارور را در هنگام خطایابی در جاوا اسکریپت دریافت کردید باید بدانید که از دستور eval() به اشتباه استفاده کرده اید.


URIError:

زمانی اتفاق می افتد که دستورهای encodeURI() و یا decodeURI() در قسمت نامناسبی استفاده می شوند. کتابخانه های بسیار زیادی وجود دارند که باعث می شوند تا شما به هیچ وجه این خطا را مرتکب نشوید که از جمله این کتابخانه ها می توان به Express، Koa و Hapi اشاره کرد که می توانید از یکی از آنها استفاده کنید.

 خطایابی در جاوا اسکریپت


ارورهای بی سر و صدا یا سایلنت

در سایر مواقع این نوع ارورها رخ می دهند، کد ما در حال اجرا است و متوقف نشده است اما خروجی که ما انتظار داریم را به ما نمی دهد، این لحظه می تواند بسیار ناراحت کننده باشد.

 خطایابی در جاوا اسکریپت


اقداماتی که باید در مقابل این ارورها در خطایابی در جاوا اسکریپت انجام دهید

1-      نمودار جریان های داده ای را با استفاده از قلم و خودکار رسم کنید. شروع به تریس کردن برنامه خود با استفاده از دستور console.logs کرده و ورودی ها و خروجی های هر بخش از کد خود را بررسی کنید و نقطه ای را پیدا کنید که جریان داده ها از درست بودن خارج می شوند.

2-      اطمینان حاصل کنید که ما در حال اجرای کدی هستیم که واقعا انتظار آن را داشتیم. از console.log کمک بگیرید تا مطمئن شوید که به بلوک هایی که باید دسترسی داشته باشید واقعا دسترسی دارید.

3-      با اشخاص دیگری درباره دلیل اتفاق افتادن این خطا صحبت کنید، یک دیدگاه جدید نسبت به کد شما می تواند در خطایابی در جاوا اسکریپت کمک کننده باشد.

4-      داکیومنتیشن های تکنولوژی هایی که استفاده کرده اید را بررسی کنید. آیا توابعی که استفاده کرده اید مقادیر درستی را به شما باز می گردانند؟ و آیا فرمت مورد انتظار شما را دارا هستند؟

5-      از روش های جایگزین برای حل مشکلات خود استفاده کنید، اگر رویکردی که در حال حاضر پیش گرفته اید را نمی توانید مدیریت کنید و در خطایابی در جاوا اسکریپت به مشکل برخورده اید سعی کنید راه های دیگری را برای انجام این بخش از کدهای خود انتخاب کنید.

 خطایابی در جاوا اسکریپت


جمع بندی نکات گفته شده درباره خطایابی در جاوا اسکریپت

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

اگر شما علاقه مند هستید که با خطاهای جدید روبرو شوید به شما توصیه می کنیم که از گیت هاب نیز دیدن کنید، در این وب سایت می توانید برخی از مهمترین و وحشتناک ترین خطاهایی که سایر کاربران دچار آن شده اند روبرو شوید و راه حل هایی که به آنها ارائه شده است را نیز بررسی کنید.

 خطایابی در جاوا اسکریپت

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید