الكائن SyntaxError في JavaScript

من موسوعة حسوب
مراجعة 04:03، 17 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الكائن SyntaxError يُشير إلى حدوث خطأ عند محاولة تفسير شيفرة ذات بنية غير صحيحة.

البنية العامة

new SyntaxError([message])

message

وسيط اختياري، وهو وصفٌ نصيٌّ للخطأ موجَّهٌ للبشر.

الخاصيات والدوال التابعة للدالة البانية SyntaxError

الخاصيات

SyntaxError.prototype

تُمثِّل هذه الخاصية كائن prototype التابعة للكائن SyntaxError.

الدوال

الدالة البانية SyntaxError لا تملك أيّة دوال تابعة لها مباشرةً، وإنما ترث بعض الخاصيات عبر سلسلة prototype.

الكائن prototype

الخاصيات

SyntaxError.prototype.constructor

تُحديد الدالة التي ستُنشِئ كائن prototype لكائنات SyntaxError؛ راجع صفحة الخاصيةObject.prototype.constructor لمزيدٍ من التفاصيل.

SyntaxError.prototype.message

رسالة الخطأ. وعلى الرغم من أنَّ مواصفة ECMAScript تقول أنَّه يجب أن يوفِّر كائن SyntaxError قيمةً خاصةً به للخاصية message، لكنه يرث الخاصية Error.prototype.message في أغلب محركات JavaScript.

SyntaxError.prototype.name

اسم الخطأ. هذه الخاصية موروثة من Error.prototype.name.

الدوال

كائن prototype التابع للكائن SyntaxError لا يملك أيّة دوال تابعة له مباشرةً، لكنه يرث بعض الخاصيات عبر سلسلة prototype.

أمثلة

سنحاول إنشاء شيفرة غير صحيحة بنيويًا باستخدام الدالة eval في المثال الآتي، وسنعالج الاستثناء باستخدام تعبير try...catch:

try {
  eval('hoo bar');
} catch (e) {
  console.log(e instanceof SyntaxError); // true
  console.log(e.message);                // "missing ; before statement"
  console.log(e.name);                   // "SyntaxError"
}

سنبيّن مثالًا عن هذا الاستثناء برميه يدويًا باستخدام الكلمة المحجوزة throw:

try {
  throw new SyntaxError('Hello');
} catch (e) {
  console.log(e instanceof SyntaxError); // true
  console.log(e.message);                // "Hello"
  console.log(e.name);                   // "SyntaxError"
}

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات