مشاوره رایگان

دسته بندی:آموزش برنامه نویسی
تاریخ انتشار:دوشنبه 3 مهر 1402
نویسنده:مهدی جام گوهری

انواع رایج خطاها (Error) در جاوا اسکریپت

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

برای دریافت اطلاعات بیشتر و پی بردن به تاریخچه ی جاوا اسکریپت به مقاله ی زیر مراجعه کنید : جاوا اسکریپت چیست ؟

انواع خطاها (Error)

در حالت کلی خطاها در محتوی نوشته ها میتواند به دسته هایی که در ادامه آن ها را خوب خواهیم شناخت مرتبط باشد ، لذا اگر کاربر گرامی به هنگام کد زدن دستوری را شامل خطاهای زیر داشته باشد ، میتواند با بررسی یکایک این خطاها مشکل خود را برطرف نماید .

Errors in JavaScript
Errors in JavaScript

1.Syntax Error(خطای دستوری)

در کلی ترین حالت این خطاها بسیار رایج و در عین حال بسیار ساده برطرف میشوند . این نوع خطاها (Syntax Error) زمانی رخ میدهد که دستوری از طرف کاربر فراخوانی شده باشد که عملا مخالف قواعد زبان کد نویسی جاوا اسکریپت باشد . به همین منظور به هنگام فراخوانی دستورات با دیدن چنین خطایی ، بلافاصله فراخوانی ادامه ی دستورات و کد ها را متوقف می کند و چنین خطایی را باز میگرداند :

        
            Uncaught SyntaxError: Unexpected identifier
        
    

در مثال زیر هر سه نوع خطای موسوم به خطای دسوری آورده شده است که با اندکی توجه میتوانید خطای دستوری را بیابید .

        
          <script>
          //  مدل اول :
            var num1 = 12 ;
            var num2 = 42 ;
            var avg = num1 ++ num2 ;
            console.log(avg);
            // Uncaught SyntaxError: Unexpected identifier


          // مدل دوم :
            let date = 9 ;
            let date = 21 ;
            // Uncaught SyntaxError: Identifier 'date' has already been declared


          // مدل سوم :
            let base = 15 ;
            function base(){
              console.log("hello !!!");
            };
            // Uncaught SyntaxError: Identifier 'base' has already been declared
          </script>
        
    
Errors in JavaScript
Errors in JavaScript

2.Type Errors(خطای نوع)

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

        
          <script>
            document.Id();
            // Uncaught TypeError: document.Id is not a function
          </script>
        
    
Errors in JavaScript
Errors in JavaScript

3.Reference Errors(خطای ارجاع)

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

        
            Uncaught ReferenceError: «تابع یا متغیر» is not defined
        
    

به مثال زیر که با همین خطا همراه است توجه کنید .

        
          <script>
            learning();
            // Uncaught ReferenceError: learning is not defined
          </script>
        
    
Errors in JavaScript
Errors in JavaScript

4.Range Errors(خطای محدوده)

این نوع خطا زمانی رخ میدهد که کاربر عدد یا رقمی که معتبر نباشد را استفاد کند .یعنی عددی که مثلا خارج از محدوده اعداد باشد را استفاده نماید ، لازم به ذکر است که این خطا به راحتی قابل تشخیص است . چنانچه دستوری شامل خطای محدوده باشد چنین خطایی نمایش داده میشود :

        
          Uncaught RangeError: Invalid array length
        
    

به مثال زیر که نوعی خطای محدوده است توجه کنید . در مثال زیر خانه ی -1 آرایه عملا وجود ندارد و در محدوده ی طول آرایه ها نمی باشد .

      
        <script>
          const x = Array(-1);
          // Uncaught RangeError: Invalid array length
        </script>
      
    
Errors in JavaScript
Errors in JavaScript

5.Logical Errors(خطای منطقی)

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

به مثال زیر توجه کنید . میخواهیم تابعی که به عنوان ورودی ،یک متغییر را از کاربر میگیرد ، تبدیل کند به y = x2 + 2x و سپس خروجی رابرای ما نشان دهد .
به هنگام ارسال عدد مثلا 3 انتظار میرود که عدد 15 را بازتاب دهد اما 17 را بازتاب میدهد . به نظر شما کدام قسمت فراخوانی این تابع اشکال دارد ؟

        
          <script>
            let number = prompt("لطفاً یک عدد را وارد کنید" , "");
            let func = x ** 2 + 2 ** x 
            alert(func);
          </script>
        
    

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

Errors in JavaScript
Errors in JavaScript

سخن پایانی

در پایان شرکت برنامه نویسی وارنا امید وار است که به کاربران محترمی که مقاله را مطالعه نموده اند کمک کرده باشد
شما می توانید برای دریافت اموزش تمامی نکات کاربردی JavaScript به سایت شرکت برنامه نویسی وارنا مراجعه نموده و در قسمت اموزش ها ضمن خرید دوره جاوا اسکریپت (JS) + تضمین استخدامی از امکان پشتیبانی 24 ساعته جهت رفع اشکال و بالا بردن سطح تسلط خود استفاده نمایید. همچنین شرکت برنامه نویسی وارنا به دنبال جذب افراد مستعد و علاقه مند به برنامه نویسی است که اطلاعات کامل ان در بخش اموزش و استخدام سایت وارنا موجود می باشد.