شبيبة تعليمي

شبيبة المنزل مقدمة شبيبة شبيبة إلى أين إخراج JS بيانات شبيبة بناء جملة JS تعليقات JS متغيرات JS JS Let شبيبة كونست مشغلي JS شبيبة الحساب احالة JS أنواع بيانات JS وظائف JS كائنات JS أحداث شبيبة سلاسل شبيبة طرق سلسلة JS بحث سلسلة JS JS String Templates أرقام شبيبة طرق عدد JS صفيفات JS طرق صفيف JS ترتيب صفيف JS تكرار صفيف JS JS Array Const تواريخ شبيبة تنسيقات التاريخ JS طرق الحصول على تاريخ JS طرق تعيين تاريخ JS شبيبة الرياضيات شبيبة عشوائية شبيبة منطقية مقارنات شبيبة شروط JS مفتاح JS JS Loop For JS Loop For In. شبيبة حلقة JS لـ Of شبيبة حلقة بينما شبيبة استراحة شبيبة تكرارات مجموعات JS خرائط شبيبة شبيبة تايبوف JS نوع التحويل شبيبة Bitwise JS RegExp أخطاء JS شبيبة النطاق رفع JS وضع JS الصارم شبيبة هذه الكلمة دالة سهم JS فئات JS شبيبة شبيبة تصحيح أخطاء JS دليل أسلوب JS أفضل ممارسات JS أخطاء JS أداء JS شبيبة الكلمات المحجوزة

إصدارات JS

إصدارات JS JS 2009 (ES5) شبيبة 2015 (ES6) شبيبة 2016 شبيبة 2017 شبيبة 2018 شبيبة آي إي / إيدج تاريخ شبيبة

كائنات JS

تعريفات الكائن خصائص الموضوع طرق الكائن عرض الكائن موصلي الكائنات منشئو الكائنات نماذج الكائن كائن تكرارات مجموعات الكائن خرائط الكائن مرجع الكائن

وظائف JS

تعريفات الوظائف معلمات الوظيفة استدعاء الوظيفة استدعاء الوظيفة تطبيق الوظيفة عمليات إغلاق الوظائف

فئات JS

مقدمة عن الفصل الوراثة الطبقية فئة ثابتة

شبيبة آسينك

عمليات الاسترجاعات JS شبيبة غير متزامن وعود شبيبة شبيبة Async / انتظار

JS HTML DOM

مقدمة DOM طرق DOM مستند DOM عناصر DOM DOM HTML نماذج DOM DOM CSS الرسوم المتحركة DOM أحداث DOM مستمع أحداث DOM التنقل في DOM عقد DOM مجموعات DOM قوائم عقدة DOM

متصفح JS BOM

نافذة JS شاشة JS موقع JS تاريخ شبيبة شبيبة ملاح تنبيه منبثق لـ JS توقيت شبيبة ملفات تعريف الارتباط JS

JS Web APIs

مقدمة واجهة برمجة تطبيقات الويب واجهة برمجة تطبيقات نماذج الويب واجهة برمجة تطبيقات سجل الويب واجهة برمجة تطبيقات تخزين الويب Web Worker API واجهة برمجة تطبيقات جلب الويب واجهة برمجة تطبيقات تحديد الموقع الجغرافي على الويب

شبيبة أجاكس

مقدمة أجاكس أجاكس XMLHttp طلب AJAX استجابة AJAX ملف AJAX XML أجاكس بي إتش بي أجاكس آسيا والمحيط الهادئ قاعدة بيانات أجاكس تطبيقات أجاكس أمثلة AJAX

شبيبة شبيبة

مقدمة JSON بناء جملة JSON JSON مقابل XML أنواع بيانات JSON تحليل JSON تنسيق JSON كائنات JSON صفائف JSON خادم JSON JSON PHP JSON HTML جسون جسونب

JS مقابل jQuery

محددات jQuery jQuery HTML jQuery CSS jQuery DOM

شبيبة الرسومات

شبيبة الرسومات قماش شبيبة شبيبة بلوتلي JS Chart.js مخطط جوجل JS شبيبة D3.js

أمثلة JS

أمثلة JS JS HTML DOM إدخال JS HTML كائنات JS HTML أحداث HTML متصفح JS محرر JS تمارين شبيبة شبيبة مسابقة شهادة JS

مراجع JS

كائنات جافا سكريبت كائنات HTML DOM


أخطاء JavaScript


ارمي وحاول ... امسك ... أخيرًا

تحدد العبارة tryكتلة التعليمات البرمجية للتشغيل (للمحاولة).

تحدد العبارة catchكتلة رمز للتعامل مع أي خطأ.

تحدد العبارة finallyكتلة التعليمات البرمجية ليتم تشغيلها بغض النظر عن النتيجة.

تحدد العبارة throwخطأ مخصص.


سيحدث أخطاء!

عند تنفيذ كود JavaScript ، يمكن أن تحدث أخطاء مختلفة.

يمكن أن تكون الأخطاء أخطاء ترميزية قام بها المبرمج وأخطاء ناتجة عن إدخال خاطئ وأشياء أخرى غير متوقعة.

مثال

في هذا المثال ، أخطأنا في كتابة كلمة "تنبيه" كـ "adddlert" لإنتاج خطأ عمدًا:

<p id="demo"></p>

<script>
try {
  adddlert("Welcome guest!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>

يمسك JavaScript adddlert كخطأ ، وينفذ كود الصيد للتعامل معه.


جافا سكريبت جرب وامسك

تسمح tryلك العبارة بتحديد كتلة من التعليمات البرمجية ليتم اختبارها بحثًا عن الأخطاء أثناء تنفيذها.

تسمح catchلك العبارة بتحديد كتلة من التعليمات البرمجية ليتم تنفيذها ، في حالة حدوث خطأ في كتلة try.

تأتي عبارات JavaScript tryفي catch أزواج:

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}


جافا سكريبت تتسبب في حدوث أخطاء

عند حدوث خطأ ، ستتوقف JavaScript بشكل طبيعي وتنشئ رسالة خطأ.

المصطلح التقني لهذا هو: جافا سكريبت سوف تطرح استثناء (خطأ) .

ستقوم JavaScript بالفعل بإنشاء كائن خطأ بخاصيتين : الاسم والرسالة .


بيان الرمي

تسمح throwلك العبارة بإنشاء خطأ مخصص.

من الناحية الفنية ، يمكنك طرح استثناء (طرح خطأ) .

يمكن أن يكون الاستثناء JavaScript Stringأو a أو Numbera Booleanأو Object:

throw "Too big";    // throw a text
throw 500;          // throw a number

إذا كنت تستخدم throwمع tryو catch، فيمكنك التحكم في تدفق البرنامج وإنشاء رسائل خطأ مخصصة.


مثال على التحقق من صحة الإدخال

يفحص هذا المثال المدخلات. إذا كانت القيمة خاطئة ، يتم طرح استثناء (يخطئ).

يتم اكتشاف الاستثناء (يخطئ) بواسطة عبارة catch ويتم عرض رسالة خطأ مخصصة:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="p01"></p>

<script>
function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x == "") throw "empty";
    if(isNaN(x)) throw "not a number";
    x = Number(x);
    if(x < 5) throw "too low";
    if(x > 10) throw "too high";
  }
  catch(err) {
    message.innerHTML = "Input is " + err;
  }
}
</script>

</body>
</html>

التحقق من صحة HTML

الكود أعلاه مجرد مثال.

غالبًا ما تستخدم المتصفحات الحديثة مزيجًا من JavaScript والتحقق من صحة HTML المدمج ، باستخدام قواعد التحقق المحددة مسبقًا المحددة في سمات HTML:

<input id="demo" type="number" min="5" max="10" step="1">

يمكنك قراءة المزيد حول التحقق من صحة النماذج في فصل لاحق من هذا البرنامج التعليمي.


البيان النهائي

تتيح لك العبارة finallyتنفيذ التعليمات البرمجية ، بعد المحاولة والإمساك ، بغض النظر عن النتيجة:

بناء الجملة

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}
finally {
  Block of code to be executed regardless of the try / catch result
}

مثال

function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x == "") throw "is empty";
    if(isNaN(x)) throw "is not a number";
    x = Number(x);
    if(x > 10) throw "is too high";
    if(x < 5) throw "is too low";
  }
  catch(err) {
    message.innerHTML = "Error: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

كائن الخطأ

يحتوي JavaScript على كائن خطأ مدمج يوفر معلومات الخطأ عند حدوث خطأ.

يوفر كائن الخطأ خاصيتين مفيدتين: الاسم والرسالة.


خصائص كائن الخطأ

ملكيةوصف
اسمتعيين أو إرجاع اسم خطأ
رسالةتعيين أو إرجاع رسالة خطأ (سلسلة)

قيم اسم الخطأ

يمكن إرجاع ست قيم مختلفة بواسطة خاصية اسم الخطأ:

اسم الخطأوصف
EvalErrorحدث خطأ في دالة EVAL ()
RangeErrorحدث رقم "خارج النطاق"
المرجع خطأحدث مرجع غير قانوني
خطأ في بناء الجملةحدث خطأ في بناء الجملة
خطأ مطبعيحدث خطأ في النوع
URIErrorحدث خطأ في encodeURI ()

يتم وصف القيم الست المختلفة أدناه.


تقييم الخطأ

يشير الحرف EvalErrorإلى خطأ في دالة EVAL ().

لا تتسبب الإصدارات الأحدث من JavaScript في خطأ EvalError. استخدم SyntaxError بدلاً من ذلك.


خطأ في النطاق

يتم طرح A RangeErrorإذا كنت تستخدم رقمًا خارج نطاق القيم القانونية.

على سبيل المثال: لا يمكنك تعيين عدد الخانات المميزة لرقم على 500.

مثال

let num = 1;
try {
  num.toPrecision(500);   // A number cannot have 500 significant digits
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

خطأ في المرجع

يتم طرح A ReferenceErrorإذا استخدمت (مرجع) متغيرًا لم يتم التصريح عنه:

مثال

let x = 5;
try {
  x = y + 1;   // y cannot be used (referenced)
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

خطأ في بناء الجملة

يتم طرح A SyntaxErrorإذا حاولت تقييم التعليمات البرمجية بخطأ نحوي.

مثال

try {
  eval("alert('Hello)");   // Missing ' will produce an error
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

خطأ مطبعي

يتم طرح A TypeErrorإذا استخدمت قيمة خارج نطاق الأنواع المتوقعة:

مثال

let num = 1;
try {
  num.toUpperCase();   // You cannot convert a number to upper case
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

خطأ URI (معرف الموارد المنتظم)

يتم طرح A URIErrorإذا استخدمت أحرفًا غير قانونية في دالة URI:

مثال

try {
  decodeURI("%%%");   // You cannot URI decode percent signs
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

خصائص كائن خطأ غير قياسي

تحدد Mozilla و Microsoft بعض خصائص كائن الخطأ غير القياسية:

اسم الملف (موزيلا)
رقم السطر (موزيلا)
العمود رقم (موزيلا)
المكدس (موزيلا)
الوصف (مايكروسوفت)
رقم (مايكروسوفت)

لا تستخدم هذه الخصائص في مواقع الويب العامة. لن تعمل في جميع المتصفحات.


مرجع الخطأ الكامل

للحصول على مرجع كامل لكائن الخطأ ، انتقل إلى مرجع خطأ JavaScript الكامل .