نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

var في JavaScript

تعبير variable يُصرِّح عن متغير، ويمكن تهيئة قيمته الابتدائية اختياريًا. البنية العامة var varname1 [= value1] [, varname2 [= value2] ... [, varnameN [= valueN]]]; varnameN اسم المتغير، ويمكن أن يكون أيّ معرِّف صالح في JavaScript. valueN القيمة الابتدائية للمتغير، ويمكن استخدام أيّ تعبير (expression) صالح في JavaScript، والقيمة الافتراضية هي undefined. الوصف التصريح عن المتغيرات سيُعالَج قبل تنفيذ أيّة شيفرات أينما وقعت، ومجال (scope) المتغيرات المُصرَّح عنا عبر var هو سياق التنفيذ الحالي (execution context)، كمجال الدوال، أو المجال ...

continue في JavaScript

التعبير البرمجي continue يؤدي إلى تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي. البنية العامة continue [label]; label مُعرِّفٌ اختياريٌ مرتبطٌ بلافتة التعبير البرمجي. الوصف على النقيض من التعبير break، لن يؤدي التعبير continue إلى إنهاء تنفيذ الحلقة كليًّا، وإنما: في حلقات while سيؤدي إلى الانتقال إلى الشرط. في حلقات for سيؤدي إلى الانتقال إلى تعبير تحديث معاملات حلقة التكرار. يمكن أن يضمّ ...

let في JavaScript

تعبير let يُصرِّح عن متغير محلي للقسم الكتلي، ويمكن تهيئة قيمته الابتدائية اختياريًا. البنية العامة let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]]; varnameN اسم المتغير، ويمكن أن يكون أيّ معرِّف صالح في JavaScript. valueN القيمة الابتدائية للمتغير، ويمكن استخدام أيّ تعبير (expression) صالح في JavaScript. الوصف التعبير let يسمح بالتصريح عن متغيرات يكون مجالها (scope) محدودًا إلى القسم الكتلي (block statement)، أو إلى التعبير (expression) الذي اُستخدِمَ فيه؛ وهو على النقيض من الكلمة المحجوزة ...

الخاصية ‎‎‎.jquery‎ في jQuery

الخاصية ‎.jquery القيم المعادة تعيد سلسلة نصية من النوع String. الوصف يُسند إلى هذه الخاصِّية سلسلة نصية تحتوي على رقم إصدار jQuery. jquery أُضيف مع الإصدار: 1.0. الخاصِّيَّة ‎.jquery هي سلسلة نصية تحتوي على رقم إصدار jQuery مثل "1.5.0" أو "1.4.4"، وتُسند إلى نموذج jQuery الأولي، ويشار إليها عادةً عبر الاسم البديل ‎$.fn. أمثلة تحديد إن كان كائنٌ ما هو كائن jQuery: $(function() { // أصبحت الصفحة جاهزة }); استعمال اختصار للشكل ‎$(document).ready()‎ ووسيط لكتابة شيفرة الفشل الآمن (failsafe) في jQuery ...

الوصول إلى الخاصيات في JavaScript

طرائق الوصول إلى الخاصيات توفِّر وصولًا إلى خاصيات أحد الكائنات باستخدام طريقة النقط أو طريقة الأقواس. البنية العامة object.property object['property'] الوصف يمكننا عدّ الكائنات على أنها مصفوفات ترابطية (أي associative array، ويُطلَق عليها أيضًا map و dictionary و hash و lookup table)، وتكون المفاتيح (keys) في المصفوفة هي أسماء خاصيات الكائن. من الشائع عند حديثنا عن خاصيات الكائنات التفريق بين الخاصيات (properties) والدوال التابعة للكائن، لكن تقنيًا تكون الدوال هي خاصيات مُنشَأة من الكائن Function. هنالك طريقتان للوصول إلى خاصيات الكائنات: ...

الدالة Promise.prototype.finally()‎ في JavaScript

الدالة finally()‎ تعيد وعدًا Pormise، وعندما تُقرَّر قيمة الوعد، سواءً كان مقبولًا أو مرفوضًا، فستُنفَّذ دالة رد النداء (callback) المُحدَّدة. وهذا ما يوفِّر طريقة لتنفيذ شيفرة ما بعد التعامل مع كائن Pormise سواءً كان الوعد مقبولًا أو مرفوضًا. تسمح هذه الدالة لنا بتفادي تكرار الشيفرات في دوال then()‎ و catch()‎. البنية العامة p.finally(onFinally); p.finally(function() { // قُرِّرَت قيمة الوعد، سواءً كان مقبولًا أم مرفوضًا }); المعاملات onFinally الدالة التي ستُستدعى عند تقرير قيمة الوعد. القيمة المعادة كائن Pormise الذي تكون ...

اللافتات label في JavaScript

التعبير البرمجي label يمكن أن يُستخدَم مع التعبير البرمجي break أو continue، وهو يوضع قبل التعابير البرمجية لإضافة لافتة (مُعرِّف) لها يمكن الإشارة إليها. لاحظ أنَّ من غير الشائع استخدام حلقات تكرار مع لافتات (labels)، وتُستخدَم عادةً الدوال بدلًا القيام بقفزات بين حلقات التكرار. البنية العامة label : statement label لافتة للتعبير البرمجي، ويمكن أن تكون أيّ مُعرِّف في JavaScript صالح (وليس كلمةً محجوزةً). statement التعابير البرمجية التي ستُضاف اللافتة إليها، ويمكن استخدام التعبير البرمجي break مع أيّ ...

الكائن Array في JavaScript

الكائن Array يُستخدَم في إنشاء المصفوفات، والتي هي قوائم شبيهة بالكائنات. إنشاء مصفوفة var fruits = ['Apple', 'Banana']; console.log(fruits.length); // 2 الوصول إلى عنصر من عناصر المصفوفة var first = fruits[0]; // Apple var last = fruits[fruits.length - 1]; // Banana المرور على عناصر المصفوفة بحلقة تكرار fruits.forEach(function(item, index, array) { console.log(item, index); }); // Apple 0 // Banana 1 إضافة عنصر في نهاية المصفوفة var newLength = fruits.push('Orange'); // ["Apple", "Banana", "Orange"] إزالة عنصر من نهاية المصفوفة var last = fruits.pop(); // إزالة Orange (من النهاية) // ["Apple", ...

المعامل الشرطي في JavaScript

المعامل الشرطي (conditional operator) هو المعامل الوحيد في JavaScript الذي يأخذ ثلاثة قيمة ليجري عليها عمليته، ومن الشائع استخدام هذا المعامل كاختصارٍ للتعبير البرمجي if. البنية العامة condition ? expr1 : expr2 condition تعبير برمجي نتيجته هي true أو false. expr1 و expr2 تعبيرين برمجيين من أيّ نوع. الوصف إذا كان الشرط condition محققًا true فسيُعيد المعامل قيمة التعبير expr1، وفيما عدا ذلك سيُعيد قيمة التعبير expr2؛ فمثلًا لو أردنَا عرض رسالة مختلفة اعتمادًا على قيمة المتغير isMember فسنستخدم التعبير ...

الكلمة المحجوزة this في JavaScript

الكلمة المحجوزة this لها سلوكٌ في JavaScript يختلف عن بقية لغات البرمجة، وهنالك اختلافاتٌ في سلوكها بين النمط strict و non-strict. في أغلبية الحالات، تُحدَّد قيمة الكلمة المحجوزة this وفق طريقة استدعاء الدالة، إذ لا يمكن ضبط قيمتها باستخدام عملية الإسناد العادية أثناء التنفيذ؛ وقد تختلف قيمة this في كل مرة تُستدعى فيها الدالة. أضافت ES5 الدالة bind التي تضبط قيمة this داخل الدالة بغض النظر عن طريقة استدعائها، وأضافت ES2015 الدوال السهمية (arrow functions) التي تُوفِّر ربطًا خاصًا بها ...

الكائن TypeError في JavaScript

الكائن TypeError يُشير إلى حدوث خطأ عندما يكون نوع المتغير أو المعامل غير صحيح. البنية العامة new TypeError([message]) message وسيط اختياري، وهو وصفٌ نصيٌّ للخطأ موجَّهٌ للبشر. الخاصيات والدوال التابعة للدالة البانية TypeError الخاصيات TypeError.prototype تُمثِّل هذه الخاصية كائن prototype التابعة للكائن TypeError. الدوال الدالة البانية TypeError لا تملك أيّة دوال تابعة لها مباشرةً، وإنما ترث بعض الخاصيات عبر سلسلة prototype. الكائن prototype الخاصيات TypeError.prototype.constructor تُحديد الدالة التي ستُنشِئ كائن prototype لكائنات TypeError؛ راجع صفحة الخاصيةObject.prototype.constructor لمزيدٍ من التفاصيل. TypeError.prototype.message رسالة ...

دالة getter في JavaScript

البنية get تؤدي إلى ربط خاصية من خاصيات الكائن بدالة التي ستستدعى عند محاولة الوصول إلى قيمة تلك الخاصية. البنية العامة {get prop() { ... } } {get [expression]() { ... } } prop اسم الخاصية الذي سترتبط بالدالة المعطية. expression بدءًا من ECMAScript 2015 (أي ES6)، يمكن استخدام التعابير لإنشاء أسماء محسوبة للخاصيات التي سترتبط بالدالة المعطية. الوصف يمكن أن تستخدم دالة getter في JavaScript لتنفيذ دالة معيّنة عندما تتم محاولة الوصول إلى خاصية من خاصيات الكائن بغية إعادة قيمة ...

الكائن Error في JavaScript

الدالة البانية Error تُنشِئ كائن خطأ، والنسخ الكائنات من النوع Error ستُرمى عند حدوث أخطاء في وقت التنفيذ (runtime errors)؛ لاحظ أنَّ الكائن Error يُستخدَم أيضًا ككائن أساس للاستثناءات التي يُعرَّفها المستخدم. انظر أدناه للحصول على قائمة بأنواع الأخطاء القياسية المُضمَّنة في اللغة. البنية العامة new Error([message]) message وسيط اختياري، وهو وصفٌ نصيٌّ للخطأ موجَّهٌ للبشر. الوصف الأخطاء التي تحدث في وقت التنفيذ (runtime errors) تؤدي إلى إنشاء ورمي كائنات Error جديدة. أنواع الأخطاء بجانب الدالة البانية Error العامة، هنالك ...

المعاملات الثنائية في JavaScript

المعاملات الثنائية (bitwise operators) تُعامِل القيم كأنها سلسلة تتألف من 32 بت (أصفار وواحدات) بدلًا من الأرقام Number في النظام العشري (decimal) أو الست عشري (hexadecimal) أو الثماني (octal)؛ فمثلًا يُمثَّل العدد 9 في نظام العد الثنائي بالمحارف 1001؛ وتجري معاملات البتات في JavaScript العمليات على التمثيل الثنائي للأعداد، لكنها تعيد قيمًا عدديةً عاديةً قياسيةً في JavaScript. الجدول الآتي يُلخِّص معاملات البتات في JavaScript: المعامل الاستخدام الوصف AND a & b يُعيد 1 مكان كل بت له القيمة 1 في ...

الإسناد بالتفكيك في JavaScript

الإسناد بالتفكيك (destructuring assignment) يسمح باستخراج القيم الموجودة في المصفوفات أو خاصيات أحد الكائنات إلى متغيرات مستقلة. البنية العامة var a, b, rest; [a, b] = [10, 20]; console.log(a); // 10 console.log(b); // 20 [a, b, ...rest] = [10, 20, 30, 40, 50]; console.log(a); // 10 console.log(b); // 20 console.log(rest); // [30, 40, 50] ({ a, b } = { a: 10, b: 20 }); console.log(a); // 10 console.log(b); // 20 // Stage 3 proposal ({a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}); console.log(a); // 10 console.log(b); // 20 console.log(rest); //{c: ...

الدالة Promise.prototype.then()‎ في JavaScript

الدالة then()‎ تعيد وعدًا Promise، وتأخذ وسيطين على الأكثر، وهما دالتا رد النداء (callback) لنجاح أو فشل الوعد. var promise1 = new Promise(function(resolve, reject) { resolve('Success!'); }); promise1.then(function(value) { console.log(value); // "Success!" }); ملاحظة: إذا كان أحد أو كلا المعاملين غير موجود، أو كان موجودًا لكنه ليس دالةً، فلن تضع الدالة then()‎ معالجًا له، لكنها لن تولِّد أي أخطاء. إذا أصبحت هنالك حالة للوعد Promise الذي استدعيت الدالة ()then عليه، ولم يكن للدالة ()then وسائط مناسبة، فسيُنشَأ وعدٌ Promise جديد دون ...

الدالة Promise.prototype.catch()‎ في JavaScript

الدالة catch()‎ تعيد وعدًا Promise وتتعامل مع حالات رفض الوعود فقط. وهي تسلك نفس سلوك استدعاء الدالة Promise.prototype.then(undefined, onRejected)‎. وفي الواقع، استدعاء الدالة obj.catch(onRejected)‎ سيستدعي الدالة obj.then(undefined, onRejected)‎ داخليًا. var promise1 = new Promise(function(resolve, reject) { throw 'Uh-oh!'; }); promise1.catch(function(error) { console.log(error); }); // Uh-oh! البنية العامة p.catch(onRejected); p.catch(function(reason) { // التعامل مع الرفض }); المعاملات onRejected دالة تستدعى عند رفض الوعد Promise. هذه الدالة تملك معاملًا وحيدًا: reason سبب الرفض. الوعد المُعاد من الدالة catch()‎ سيُرفَض إذا رمت الدالة onRejected أو ...

المعاملات المنطقية في JavaScript

المعاملات المنطقية (logical operators) تُستخدَم عادةً مع القيم المنطقية Boolean، وستُعيد هذه المعاملات حينئذٍ قيمةً منطقيةً أيضًا؛ لكن المعاملين && و || سيُعيدان إحدى القيمتين اللتين تجريان عملياتهما عليها، لذا إذا لم تكن تلك القيمة منطقيةً (Boolean) فقد لا تُعاد قيمةٌ منطقيةٌ. الوصف المعاملات المنطقية موضَّحة في الجدول الآتي: المعامل الاستخدام الوصف AND (&&) expr1 && expr2 يُعيد expr1 إذا كان بالإمكان تحويله إلى false، وإلا فسيعيد expr2، وبالتالي عند استخدامه مع القيم المنطقية فسيعيد المعامل && القيمة true إذا ...

الدوال السهمية في JavaScript

تعبير الدوال السهمية (arrow function expression) له بنيةٌ عامةٌ مختصرةٌ أكثر من تعبير تعريف الدوال، ولا يملك قيم this أو arguments أو super أو new.target خاصة به؛ والدوال السهمية تناسب الدوال التي لا تكون أعضاءً في كائنٍ ما، وتلك التي لن تُستخدَم كدالة بانية. البنية العامة البنية الأساسية (param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression // ستُقدَّر إلى: (param1, param2, …, paramN) => { return expression; } // الأقواس اختيارية عندما يكون هنالك وسيطٌ وحيدٌ فقط (singleParam) ...

الكائن RangeError في JavaScript

الكائن RangeError يُشير إلى حدوث خطأ وقع عندما تكون قيمة متغير رقمي أو معاملٍ ما خارج المجال المسموح. البنية العامة new RangeError([message]) message وسيط اختياري، وهو وصفٌ نصيٌّ للخطأ موجَّهٌ للبشر. الوصف سيرمى الخطأ RangeError عند محاولة تمرير رقم كوسيط إلى دالة لا تعدّ هذا الرقم ضمن المجال المسموح للقيم التي تقبلها؛ وسيحدث ذلك عند محاولة إنشاء مصفوفة لها طول (length) غير صحيح باستخدام الدالة البانية Array، أو عند تمرير قيم غير صالحة إلى الدوال Number.toExponential()‎ أو Number.toFixed()‎ أو Number.toPrecision()‎. ...

الكائن SyntaxError في JavaScript

الكائن SyntaxError يُشير إلى حدوث خطأ عند محاولة تفسير شيفرة ذات بنية غير صحيحة. البنية العامة new SyntaxError([message]) message وسيط اختياري، وهو وصفٌ نصيٌّ للخطأ موجَّهٌ للبشر. الخاصيات والدوال التابعة للدالة البانية SyntaxError الخاصيات SyntaxError.prototype تُمثِّل هذه الخاصية كائن prototype التابعة للكائن SyntaxError. الدوال الدالة البانية SyntaxError لا تملك أيّة دوال تابعة لها مباشرةً، وإنما ترث بعض الخاصيات عبر سلسلة prototype. الكائن prototype الخاصيات SyntaxError.prototype.constructor تُحديد الدالة التي ستُنشِئ كائن prototype لكائنات SyntaxError؛ راجع صفحة الخاصيةObject.prototype.constructor لمزيدٍ من التفاصيل. SyntaxError.prototype.message رسالة ...

بناء Javascript و CSS

مقدمة لا يفرض Laravel عليك استخدام أي معالج JavaScript و CSS، إلّا إنّه يوفّر نقطة انطلاق بسيطة باستخدام Bootstrap و Vue ممّا سيساعد العديد من التطبيقات. بصفة عامّة، يستخدم Laravel أوامر npm لتنصيب حزم الواجهات الأمامية هذه. CSS يوفّر Laravel Mix واجهة برمجية (API) سهلة ومعبّرة لترجمة Sass أو Less، وهي إضافات للغة CSS الأساسية التي تضيف المتغيّرات والمخاليط (mixins) والعديد من الخصائص الأخرى التي تجعل العمل بلغة CSS أكثر متعة. في هذه الصفحة، سنناقش باختصار ترجمة CSS بصفة عامّة ...

الكائن Date في JavaScript

الدالة البانية Date تُنشِئ كائنًا من النوع Date الذي يُمثِّل لحظة زمنية معيّنة. القيمة الزمنية الموجودة في كائنات Date هي كم ملي ثانية مضى منذ تاريخ 1 كانون الثاني (يناير) 1970 بتوقيت UTC. البنية العامة new Date(); new Date(value); new Date(dateString); new Date(year, month, day, hours, minutes, seconds, milliseconds); ملاحظة: كائنات Date في JavaScript يمكن تهيئتها باستخدام Date كدالة بانية فقط، أي استدعاؤها كدالة عادية (دون المعامل new) وسيُعيد ذلك سلسلةً نصيةً بدلًا من الكائن Date، وعلى النقيض من بقية أنواع كائنات JavaScript، لا ...

معاملات المقارنة في JavaScript

تملك JavaScript نوعين من المقارنة: نوع المقارنة الصارم (strict comparison) مثل المعامل === الذي تكون نتيجة المقارنة معه هي true إذا كانت كلا القيمتان من النوع نفسه ومحتوياتهما متطابقة؛ ونوع المقارنة الذي يحوِّل أنواع البيانات لتتوافق مع بعضها (type–converting comparison) مثل المعامل == الذي يحوِّل القيمتين إلى النوع نفسه قبل إجراء عملية المقارنة؛ أما لعمليات المقارنة النسبية (مثل ‎>=‎) فستحوَّل القيم المُقارَنة إلى قيم أوليّة ثم إلى نوع البيانات نفسه وذلك قبل إجراء عملية المقارنة. تُقارَن السلاسل النصية بناءً على ...

أولوية المعاملات في JavaScript

أولوية المعاملات (operator precedence) تُحدِّد طريقة تفسير المعاملات نسبةً إلى بعضها بعضًا، والمعاملات التي لها أولوية أعلى ستصبح قيمةً تُجرى عليها عملية المعاملات ذات الأولوية المنخفضة. مثال شائع عن أولوية المعاملات: 3 + 4 * 5 // 23 معامل الضرب * له أولوية أعلى من معامل الجمع +، لذا سيُصبح ناتج التعبير ‎4 * 5 قيمةً تُجرى عليها عملية الجمع، بدلًا من أن يصبح التعبير ‎3 + 4 قيمةً تُجرى عليها عملية الضرب. الترتيب يُحدِّد الترتيب (associativity) الطريقة التي تُفسَّر فيها ...

المعامل void في JavaScript

المعامل void يُقدِّر قيمة التعبير المعطى (expression) ثم يُعيد القيمة undefined. البنية العامة void expression الوصف هذا المعامل يسمح بتقدير قيمة التعابير البرمجية للحصول على قيمة منها تساوي undefined (أي ستُنفَّذ تلك التعابير البرمجية لكن القيمة المعادة هي undefined). يُستخدَم المعامل void عادةً للحصول على القيمة الأوليّة undefined، وذلك باستخدام ‎void(0)‎ (أو الشكل المكافئ void 0)، يجدر بالذكر أنَّ هذا الاستخدام مفيدٌ إذا أعيد ضبط قيمة المتغير العام undefined إلى قيمة أخرى. أمثلة الدوال ذاتية الاستدعاء عند استخدام دالة ذاتية ...

الكائن JSON في JavaScript

الكائن JSON يحتوي على الدوال التي تُفسِّر صيغة JavaScript Object Notation (اختصارًا JSON) وتحوّل القيم إلى صيغة JSON. ليس الغرض من هذا الكائن هو تهيئته أو بناؤه (عبر المعامل new)، وليس له عملٌ خاصٌ به باستثناء وجود دالتين تابعتين له. الوصف صيغة JSON هي صيغة لتخزين الكائنات والمصفوفات والأعداد والسلاسل النصية والقيم المنطقية والقيمة null؛ وهي مبنية على صيغة JavaScript لكنها تختلف عنها، فبعض شيفرات JavaScript ليست صالحةً في JSON، وبعض شيفرات JSON ليس صالحةً في JavaScript. الجدول الآتي يعرض ...

الكائن Object في JavaScript

الدالة البانية Object تُنشِئ كائنًا. البنية العامة // الشكل المختصر لتهيئة الكائن { [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] } // استدعاء الدالة البانية new Object([value]) nameValuePairN أزواج من الأسماء (السلاسل النصية) والقيم (أيّ نوع من القيم) التي يُفصل فيها بين الاسم والقيمة بنقطتين رأسيتين :. value أيّة قيمة في JavaScript. الوصف الدالة البانية Object تُغلِّف (wrap) القيمة المعطية في كائن، وإذا كانت القيمة المعطية null أو undefined، فستُنشِئ وتُعيد كائنًا فارغًا، وفيما عدا ذلك فستُنشِئ وتُعيد كائنًا من النوع المناسب للقيمة المعطية، ...

المعامل new في JavaScript

المعامل new يُنشِئ نسخةً من كائن مُعرَّف من المستخدم أو نسخةً من أحد أنواع الكائنات المُضمّنة في لغة JavaScript والتي تملك دالةً بانيةً. البنية العامة new constructor[([arguments])] constructor صنف (class) أو دالة (function) التي تُحدِّد نوع نسخة الكائن (object instance). arguments قائمة بالقيم التي ستُمرَّر إلى الدالة البانية constructor. الوصف إنشاء كائن مُعرَّف من المستخدم يتطلب خطوتين: تعريف نوع الكائن بكتابة دالة، إنشاء نسخة من الكائن عبر المعامل new. لتعريف نوع الكائن، فيجب إنشاء دالة تُحدِّد اسمه وخاصياته، ويمكن أن ...

التصريح عن الدوال في JavaScript

التصريح عن الدالة (function declaration) يُعرِّف دالةً لها معاملات (parameters) معيّنة. يمكن أيضًا تعريف الدوال عبر الدالة البانية Function وعبر تعابير تعريف الدوال (function expression). البنية العامة function name([param,[, param,[..., param]]]) { [statements] } name اسم الدالة. param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي يُفسِّر اللغة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. الوصف الدالة المُصرَّح عنها هي كائن Function يملك وصولًا إلى جميع خاصياته ودواله ولها نفس ...

الكائن RegExp في JavaScript

الكائن RegExp هو دالةٌ بانيةٌ تُنشِئ تعابير نمطيةً (regular expressions) لمُطابَقة النص مع نمط. البنية العامة يمكن أن تأخذ التعابير النمطية الشكل الآتي (الشكل المختصر، ثم الدالة البانية، ثم الدالة RegExp): /pattern/flags new RegExp(pattern[, flags]) RegExp(pattern[, flags]) pattern التعبير النمطي. flags إذا حُدِّدَت قيمة هذا الوسيط، فستحتوي على تجميعة من الرايات الآتية. g المطابقة في كامل السلسلة النصية، أي العثور على جميع المطابقات بدل التوقف عند أوّل مطابقة. i تجاهل حالة الأحرف. m تعدد الأسطر، أي معاملة محرف البداية والنهاية (أي ^ ...

الدوال المولدة في JavaScript

التصريح عن الدالة المولدة (generator function declaration) يُعرِّف دالة مولدِّةً التي تُعيد الكائن Generator. لاحظ أنَّ التصريح عن الدوال المولدة يكون عبر الكلمة المحجوزة function ويليها رمز النجمة *. يمكن أيضًا تعريف الدوال المولِّدة عبر الدالة البانية GeneratorFunction وعبر تعابير تعريف الدوال المولدة (function* expression). البنية العامة function* name([param[, param[, ... param]]]) { statements } name اسم الدالة param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي يُفسِّر اللغة. statements ...

try...catch في JavaScript

التعبير البرمجي try...catch يُستخدَم لتجربة قسم من التعابير البرمجية، ويُحدِّد طريقةً لمعالجة الاستثناءات إن رُمِيَت. البنية العامة try { try_statements } [catch (exception_var_1) { catch_statements_1 }] ... [catch (exception_var_2) { catch_statements_2 }] [finally { finally_statements }] try_statements التعابير البرمجية التي ستُنفَّذ والتي قد ترمي استثناءً. catch_statements_1 و catch_statements_2 التعابير البرمجية التي ستُنفَّذ إذا رُمي استثناءٌ في قسم try. exception_var_1 و exception_var_2 مُعرِّف يُستخدَم لتخزين قيمة كائن الاستثناء (exception object) المرتبط مع قسم catch. finally_statements التعابير البرمجية التي ستُنفَّذ بعد إكمال ...

معاملات الإسناد في JavaScript

معاملات الإسناد (assignment operators) تُسنِد القيمة التي على يمين المعامل إلى القيمة التي على يساره. لمحة معامل الإسناد البسيط هو رمز المساواة =، الذي يؤدي إلى إسناد القيمة التي على يمينه إلى القيمة التي على يساره، أي لو كان عندنا x = y فستُسنَد قيمة y إلى x؛ أما بقية معاملات الإسناد فهي اختصارٌ للعمليات القياسية كما هو واضح في الأقسام والأمثلة التالية. الاسم المعامل المعنى معامل الإسناد x = y x = y معامل الإسناد والإضافة x += y ...

الرموز Symbol في JavaScript

الدالة Symbol()‎ تُعيد قيمةً من النوع symbol، وتملك هذه الدالة خاصيات ساكنة (static properties) ودوال ساكنة (التي تُستخدَم للوصول إلى سجل الرموز العام، أي global symbol registry، ويسمى أيضًا بالمصطلح symbol table)؛ وهذه الدالة تحاول التشبه بالدوال البانية للكائنات، لكنها ليست دالةً بانيةً لعدم القدرة على استخدام المعامل new معها كما في new Symbol()‎. كل رمز (symbol) مُعاد من الدالة Symbol()‎ هو رمزٌ فريد؛ ويمكن أن يُستخدَم كمُعرِّف (identifier) لخاصيات الكائنات، وهذا هو الغرض الرئيسي من هذا النوع من البيانات. ...

دالة setter في JavaScript

البنية set تؤدي إلى ربط خاصية من خاصيات الكائن بدالة التي ستستدعى عند محاولة ضبط قيمة تلك الخاصية. البنية العامة {set prop(val) { . . . }} {set [expression](val) { . . . }} prop اسم الخاصية الذي سترتبط بالدالة المعطية. val اسم المتغير الذي سيحمل القيمة التي تتم محاولة إسنادها إلى الخاصية prop. expression بدءًا من ECMAScript 2015 (أي ES6)، يمكن استخدام التعابير لإنشاء أسماء محسوبة للخاصيات التي سترتبط بالدالة المعطية. الوصف يمكن أن تستخدم دالة setter في JavaScript لتنفيذ ...

الدالة eval()‎ في JavaScript

الدالة eval()‎ تُقدِّر قيمة شيفرة JavaScript المُمثَّلة في سلسلة نصية. البنية العامة eval(string) string سلسلة نصية تُمثِّل أحد التعبيرات أو التعبيرات البرمجية أو سلسلة من التعبيرات البرمجية في JavaScript، ويمكن أن يحتوي التعبير أيضًا على متغيرات وخاصيات لكائنات موجودة مسبقًا. القيمة المعادة ستُعيد الدالة eval()‎ قيمة آخر تعبير قد قُدِّرَت قيمته، وإذا كانت قيمته فارغةً فستُعاد القيمة undefined. الوصف الدالة eval()‎ هي خاصيةٌ للكائن العام (global object)، وتقبل وسيطًا هو سلسلة نصية، وإذا كانت هذه السلسلة النصية تُمثِّل تعبيرًا (expression ...

الكائن URIError في JavaScript

الكائن URIError يُمثِّل أحد الأخطاء التي تقع عند تمرير وسائط غير صالحة إلى دالة encodeURI()‎ (أو encodeURIComponent()‎) أو decodeURI()‎ (أو decodeURIComponent()‎) البنية العامة new URIError([message]) message وسيط اختياري، وهو وصفٌ نصيٌّ للخطأ موجَّهٌ للبشر. الخاصيات والدوال التابعة للدالة البانية URIError الخاصيات URIError.prototype تُمثِّل هذه الخاصية كائن prototype التابعة للكائن URIError. الدوال الدالة البانية URIError لا تملك أيّة دوال تابعة لها مباشرةً، وإنما ترث بعض الخاصيات عبر سلسلة prototype. الكائن prototype الخاصيات URIError.prototype.constructor تُحديد الدالة التي ستُنشِئ كائن prototype لكائنات URIError؛ راجع صفحة الخاصيةObject.prototype.constructor لمزيدٍ ...

الأقسام الكتلية في JavaScript

الأقسام الكتلية (block statement) تُستخدَم لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجٍ من الأقواس المعقوفة {}، وقد يُضاف قبله لافتة (label). البنية العامة قسم كتلي دون لافتة: { StatementList } قسم كتلي مع لافتة: LabelIdentifier: { StatementList } StatementList التعابير البرمجية المجمَّعة ضمن القسم الكتلي. LabelIdentifier لافتة label اختيارية يمكن استخدامها لتسهيل التعرّف بصريًا على القسم، أو كوجهة للتعبير break. الوصف تسمح الأقسام الكتلي لك باستخدام أكثر من تعبير برمجي في المواضع التي تتوقع JavaScript أن تتلقى تعبيرًا برمجيًا وحيدًا؛ ...

JavaScript/Topics/Statements

في هذا القسم جميع التعابير البرمجية الموجودة في لغة JavaScript. التحكم في التنفيذ block تُستخدَم الأقسام الكتلية لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجين من الأقواس المعقوفة {}. break يإنهاء حلقة التكرار الحالية أو التعبير switch أو label، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى. continue تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي. Empty يُستخدَم لتجنب توفير تعبير برمجي في ...

مهيئ الكائنات في JavaScript

يمكن تهيئة الكائنات باستخدام new Object()‎ أو الدالة Object.create()‎ أو باستخدام الشكل المختصرة (initializer notation). إنَّ مُهيّئ الكائنات هو قائمة فيها «صفر» زوج أو أكثر من أسماء الخاصيات مع القيم المرتبطة بها، مفصولةٌ بفواصل، ويحيط بها قوسين معقوفين {}. البنية العامة var o = {}; var o = {a: 'foo', b: 42, c: {}}; var a = 'foo', b = 42, c = {}; var o = {a: a, b: b, c: c}; var o = { property: function ([parameters]) {}, get property() ...

معامل الفاصلة في JavaScript

معامل الفاصلة (comma operator) يُقدِّر القيم التي يجري عمليته عليها (من اليسار إلى اليمين) ويُعيد قيمة آخر قيمة. البنية العامة expr1, expr2, expr3... expr1 و expr2 و expr3 أيّة تعابير (expressions) برمجية. الوصف يمكنك استخدام معامل الفاصلة عندما تريد تضمن عدِّة تعابير (expressions) في مكان يسمح بتعبيرٍ واحد؛ وأكثر استخدام شائع لهذا المعامل هو توفير أكثر من متغير لحلقة for. أمثلة استخدام معامل الفاصلة مع حلقة التكرار for إذا كانت لدينا مصفوفة باسم a وهي مصفوفةٌ ثنائيةُ الأبعاد في كل ...

الكائن Function في JavaScript

الدالة البانية Function تُنشِئ كائن Function جديد، واستدعاء الدالة البانية مباشرةً يمكِّننا من إنشاء الدوال ديناميكيًا، لكنه يعاني من مشاكل تتعلق بالأداة والناحية الأمنية بما يشابه دالة eval. يجدر بالذكر أنَّ جميع الدوال في JavaScript هي كائنات Function. البنية العامة new Function ([arg1[, arg2[, ...argN]],] functionBody) arg1, arg2, ... argN الأسماء المستخدمة من الدالة للإشارة إلى الوسائط المُمرَّرة إلى الدالة، ويجب أن تكون سلاسل نصية تُمثِّل مُعرِّفات JavaScript صالحة أو قائمة من تلك السلاسل النصية التي يُفصَل بينها بفاصلة؛ مثلًا: ...

الكائن arguments في JavaScript

الكائن arguments هو كائن شبيه بالمصفوفات يمنحنا وصولًا إلى الوسائط المُمرَّرة إلى دالةٍ ما. البنية العامة arguments الوصف الكائن arguments هو متغيرٌ محليٌّ متاحٌ في جميع الدوال (عدا الدوال السهمية)، ويمكنك الإشارة إلى الوسائط المُمرَّرة إلى الدالة داخلها باستخدام الكائن arguments. يحتوي هذا الكائن على كل وسيط مُمرَّر إلى الدالة مرتبًا بنفس ترتيب تمريره بدءًا من الفهرس 0. على سبيل المثال، إذا مُرَّرتَ ثلاثة وسائط إلى دالةٍ ما، فيمكنك الإشارة إليها كما يلي: arguments[0] arguments[1] arguments[2] يمكنك ضبط قيمة الوسائط أيضًا: arguments[1] = ...

الكائن ReferenceError في JavaScript

الكائن ReferenceError يُشير إلى حدوث خطأ عند محاولة الإشارة إلى متغيرٍ غير موجود. البنية العامة new ReferenceError([message]) message وسيط اختياري، وهو وصفٌ نصيٌّ للخطأ موجَّهٌ للبشر. الخاصيات والدوال التابعة للدالة البانية ReferenceError الخاصيات ReferenceError.prototype تُمثِّل هذه الخاصية كائن prototype التابعة للكائن ReferenceError. الدوال الدالة البانية ReferenceError لا تملك أيّة دوال تابعة لها مباشرةً، وإنما ترث بعض الخاصيات عبر سلسلة prototype. الكائن prototype الخاصيات ReferenceError.prototype.constructor تُحديد الدالة التي ستُنشِئ كائن prototype لكائنات ReferenceError؛ راجع صفحة الخاصيةObject.prototype.constructor لمزيدٍ من التفاصيل. ReferenceError.prototype.message رسالة الخطأ. ...

المعامل typeof في JavaScript

المعامل typeof يُعيد سلسلةً نصية تُشير إلى نوع القيمة التي تليه. البنية العامة typeof operand operand تعبير يُمثِّل كائنًا أو نوع بيانات أوليّ الذي نريد إعادة نوعه. الوصف الجدول الآتي يُلخِّص القيم التي يمكن أن يُعيدها المعامل typeof: النوع النتيجة undefined "undefined" null "object" (انظر الأمثلة) Boolean "boolean" Number "number" String "string" Symbol (جديد في ECMAScript 2015) "symbol" Function "function" أي كائن آخر "object" أمثلة // الأعداد typeof 37 === 'number'; typeof 3.14 === 'number'; typeof(42) === 'number'; typeof Math.LN2 === 'number'; typeof Infinity === ...

الدالة Promise.all()‎ في JavaScript

الدالة Promise.all(iterable)‎ تُعيد وعدًا Promise وحيدًا الذي سيُقبَل (resolves) عندما تكون جميع الوعود في الوسيط iterable مقبولة، أو عندما يكون المعامل iterable لا تحتوي على أيّ وعود. وسيُرفَض مع سبب أول وعد مرفوض. var promise1 = Promise.resolve(3); var promise2 = 42; var promise3 = new Promise(function(resolve, reject) { setTimeout(resolve, 100, 'foo'); }); Promise.all([promise1, promise2, promise3]).then(function(values) { console.log(values); }); // Array [3, 42, "foo"] البنية العامة Promise.all(iterable); المعاملات iterable كائن قابل للتكرار (iterable) مثل Array أو String. القيمة المعادة وعد Promise مقبول (already resolved) إذا ...

القيمة null في JavaScript

القيمة null تُمثِّل الغياب المقصود لقيمة الكائن، وهي من أنواع القيم الأوليّة في JavaScript. البنية العامة null الوصف القيمة null تُستخدَم عبر ذكر null، لاحظ أنَّ null ليست مُعرِّفًا لخاصية في الكائن العام (أي أنها ليست مثل الخاصية undefined)، وإنما null تُعبِّر عن عدم وجود تعريف (identification) من الأساس، وتدل على أنَّ المتغير لا يُشير إلى أيّ كائن. // المتغير غير موجود، إذ لم يُعرَّف أو يُهيّئ من قبل console.log(foo); // ReferenceError: foo is not defined // أصبح المتغير موجودًا لكن ليس ...

معامل التجميع في JavaScript

معامل التجميع (grouping operator) وهو ( ) يتحكم بأولوية تقدير قيمة التعابير (expressions). البنية العامة ( ) الوصف معامل التجميع يتألف من زوجٍ من الأقواس الهلالية التي تحيط بتعبير (expression) أو تعبيرٍ فرعي (sub-expression) لتجاوز أولوية المعاملات العادية لكي يمكن تقدير قيمة التعابير ذات الأولوية المنخفضة قبل التعابير ذات الأولوية الأعلى منها. أمثلة مثال عن تجاوز أولوية الضرب والقسمة أولًا، ثم الجمع والطرح لجعل عملية الجمع تُجرى أولًا: var a = 1; var b = 2; var c = 3; // الأولوية ...

المعامل instanceof في JavaScript

المعامل instanceof يختبر إذا كانت الخاصية prototype لدالة بانية تظهر في أيّ مكان في سلسلة prototype لأحد الكائنات. البنية العامة object instanceof constructor object الكائن الذي نريد معرفة إن كانت خاصية prototype للدالة البانية constructor ستظهر في أي مكان في سلسلة prototype الخاصة به. constructor الدالة البانية التي سنختبر الكائن بها. الوصف يختبر المعامل instanceof وجود الخاصية constructor.prototype في سلسلة prototype للكائن object. // تعريف الدوال البانية function C() {} function D() {} var o = new C(); // true: Object.getPrototypeOf(o) === C.prototype o instanceof ...

الكائن Boolean في JavaScript

الكائن Boolean هو كائن مُغلِّف لنوع القيم الأوليّة boolean (المنطقية). البنية العامة new Boolean([value]) value وسيط اختياري، وهو القيمة الابتدائية للكائن Boolean. الوصف القيمة المُمرَّرة كوسيط إلى الدالة البانية Boolean ستُحوَّل إلى قيمة منطقية إن كان ذلك ضروريًا؛ وإذا لم تُحدَّد القيمة، أو كانت 0 أو -0 أو null أو false أو NaN أو undefined أو سلسلة نصية فارغة "" فستكون القيمة الابتدائية للكائن هي false؛ وجميع القيمة الأخرى بما في ذلك أيّة كائنات أو السلسلة النصية "false" ستُنشِئ كائنًا ...

المعامل delete في JavaScript

المعامل delete يحذف خاصيةً من كائن. البنية العامة delete expression إذ يجب أن تكون نتيجة التعبير expression هي مرجعية إلى خاصية من خاصيات الكائن، مثلًا: delete object.property delete object['property'] object اسم الكائن، أو تعبير نتيجته هي إشارة إلى كائنٍ ما. property اسم الخاصية التي نريد حذفها. القيمة المعادة القيمة true لكل الحالات إلا إذا كانت الخاصية غير قابلة للضبط (non-configurable property)، وفي هذه الحالة ستُعاد القيمة false في النمط non-strict. الاستثناءات سيُرمى SyntaxError في نمط strict إذا كانت الخاصية غير قابلةً للضبط ...

الدالة escape()‎ في JavaScript

الدالة escape()‎ تُهرِّب المحارف الخاصة الموجودة في سلسلة نصية وتُعيد السلسلة النصية المرمَّزة. البنية العامة escape(str) str السلسلة النصية التي ستُرمَّز. القيمة المعادة سلسلة نصية تُمثِّل النسخة المُرمَّزة من السلسلة النصية. الوصف الدالة escape هي خاصيةٌ من خاصيات الكائن العام، وستؤدي إلى ترميز المحارف الخاصة باستثناء المحارف @*_+-./. التمثيل الست عشري لتلك المحارف يكون على الشكل ‎%xx وذلك للمحارف التي تكون قيمة رمزها (code unit value) أقل من 0xFF، وللمحارف التي تكون قيمة رمزها أكبر من ذلك فستُستخدم الصيغة ‎%uxxxx. ...

المعامل await في JavaScript

المعامل await يُستخدَم لانتظار وعد (الكائن Promise)، ويمكن أن يُستخدَم داخل دالة غير متزامنة فقط (async function). البنية العامة [rv] = await expression; expression كائن Promise أو أيّة قيمة يجب انتظارها. rv إعادة قيمة المُحققة للوعد (الكائن Promise)، أو القيمة نفسها إذا لم تكن وعدًا. الوصف التعبير await يؤدي إلى إيقاف تنفيذ دالة غير متزامنة (async function) ريثما يتحقق (fulfill) أو يُرفَض (reject) الوعد (الكائن Promise)، ويؤدي إلى استئناف تنفيذ الدالة غير المتزامنة بعد أن يتحقق الوعد، وعند استنئاف الدالة ...

المعاملات الرياضية في JavaScript

المعاملات الرياضية (arithmetic operators) تأخذ قيمًا عدديةً وتُعيد قيمةً عدديةً واحدةً، والمعاملات الرياضية القياسية هي الجمع + والطرح - والضرب * والقسمة /. الجمع (+) معامل الجمع يُنتِج مجموع المدخلات الرقمية، أو يضيف سلسلتين نصيتين إلى بعضها. البنية العامة x + y أمثلة // رقم + رقم -> عملية جمع 1 + 2 // 3 // رقم + قيمة منطقية -> عملية جمع true + 1 // 2 // قيمة منطقية + قيمة منطقية -> عملية جمع false + false // 0 // رقم + سلسلة ...

الكائن Number في JavaScript

الكائن Number هو كائن مُغلِّف (wrapper object) الذي يسمح لك بالعمل مع القيم العددية، وتُنشَأ كائنات Number باستخدام الدلة البانية Number()‎. البنية العامة new Number(value); value القيمة العددية التي سيحملها الكائن المُنشَأ. الوصف الاستخدامات الأساسية لكائنات Number هي: إذا لم يكن بالإمكان تحول الوسيط المُمرَّر إلى الدالة البانية إلى قيمة رقمية، فستُعاد القيمة NaN. عند استخدام الدالة Number دون المعامل new (أي أنها ليست دالةً بانيةً)، فيمكن أن تُستخدَم لإجراء تحويل بين أنواع القيم. الخاصيات التابعة للدالة البانية Number Number.EPSILON ...

do...while في JavaScript

التعبير البرمجي do...while يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false)، وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي، مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل. البنية العامة do statement while (condition); statement  التعبير البرمجي الذي سيُنفَّذ مرةً واحدةً على الأقل وسيُعاد تنفيذه في كل مرة يكون فيها الشرط محققًا (أي true)؛ ولتنفيذ أكثر من تعبير برمجي فاستخدام الأقسام الكتلية (block statement) { ... } لتجميع هذا التعابير. condition ...

الكائن Math في JavaScript

الكائن Math هو كائنٌ مُضمَّن في اللغة الذي يملك خاصيات ودوال تُمثِّل الثوابت والدوال الرياضيّة. هذا الكائن ليس دالةً بحد ذاته، انظر قسم الوصف للمزيد من المعلومات. الوصف على النقيض من الكائنات العامة الأخرى، الكائن Math ليس دالةً بانيةً (constructor)، وجميع الخاصيات والدوال التابعة للكائن Math هي خاصيات ساكنة (static)، وهذا يعني أنَّك تستطيع الإشارة إلى الثابت الرياضي π (باي) باستخدام الخاصية Math.PI وتستطيع استخدام دالة جيب الزاوية (sine) كما يلي Math.sin(x)‎، إذ إنَّ القيمة x هي الوسيط المُمرَّر إلى ...

JavaScript/Topics/Functions

هذا القسم فيه ما يتعلق بميزات دوال JavaScript التي تستفيد منها في تطوير التطبيقات. الدوال في JavaScript الكائن arguments الدوال السهمية الوسائط الافتراضية معامل البقية

معامل البقية Rest في JavaScript

يسمح معامل البقية (rest parameter) بتمثيل عدد غير مُحدِّد من الوسائط المُمرَّرة إلى دالةٍ ما كمصفوفة. البنية العامة function f(a, b, ...theArgs) { // ... } الوصف إذا أُسبِقَ آخر معامل من معاملات الدالة بثلاث نقط ... فسيصبح مصفوفةً التي تبدأ من 0 حتى theArgs.length التي تحمل قيم الوسائط التي مُرِّرَت إلى الدالة. ففي الشيفرة الموجودة في القسم السابق، ستحمل المصفوفة theArgs قيمة الوسيط الثالث المُمرَّر إلى الدالة (لأنَّ أوّل وسيط سيرتبط بالمعامل a، وسيرتبط ثاني وسيط بالمعامل b) وكل ...

الكلمة المحجوزة super في JavaScript

الكلمة المحجوزة super تُستخدَم للوصول إلى الكائنات في الكائن الأب واستدعائها. يمكن استخدام التعبيرين super.prop و super[expr]‎ في الأصناف والكائنات. البنية العامة super([arguments]); // استدعاء الدالة البانية للكائن الأب super.functionOnParent([arguments]); الوصف عند استخدام الكلمة المحجوزة super في الدالة البانية فيجب أن تُستخدَم قبل أيّ استخدام للكلمة المحجوزة this، ويمكن أن تُستخدَم الكلمة المحجوزة super لاستدعاء الدوال التابعة للكائن الأب أيضًا. أمثلة استخدام super في الأصناف عند استدعاء الدوال العادية (أي أنَّ الدالة ليست دالةً بانيةً)، فستكون قيمة new.target هي undefined، وهذا ...

المعاملات الافتراضية للدوال في JavaScript

معاملات الدالة الافتراضية (default function parameters) تسمح بتهيئة معاملات الدالة مع قيم افتراضية إن لم تُمرَّر لها قيمة أثناء استدعاء الدالة أو كانت القيمة المُمرَّرة هي undefined. البنية العامة function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defaultValueN ]]]) { statements } الوصف تكون قيمة المعاملات الافتراضية في JavaScript هي undefined، لكن في بعض الحالات يكون من المفيد ضبط قيمة تلك المعاملات إلى قيمةٍ أخرى، وهنا تلعب المعاملات الافتراضية دورها. في الماضي كانت الاستراتيجية العامة المتبعة لضبط قيم افتراضية ...

معامل النشر Spread في JavaScript

معامل النشر (spread operator) يسمح للكائنات التي يمكن المرور على عناصرها -مثل تعابير المصفوفات أو السلاسل النصية (أي أنها iterable)- أن توسَّع في الأماكن التي تتوقع JavaScript وجود صفر وسيط أو أكثر (عند استدعاء الدوال) أو صفر عنصر أو أكثر (في المصفوفات)، أو نشر كائن في الأماكن التي تتوقع JavaScript وجود صفر زوج أو أكثر من المفاتيح والقيم المرتبطة بها (عند تعريف الكائنات). البنية العامة عند استدعاء الدوال: myFunction(...iterableObj); في المصفوفات أو السلاسل النصية: [...iterableObj, '4', 'five', 6]; عند تعريف الكائنات (ميزة ...

JavaScript/Topics/Expressions and Operators

هذا القسم فيه ما يتعلق بالتعابير والمعاملات في JavaScript. التعابير الأساسية وهي تتضمن التعابير والكلمات المحجوزة العامة في JavaScript. this تُحدَّد قيمة الكلمة المحجوزة this وفق طريقة استدعاء الدالة. function (تعبير تعريف الدوال) الكلمة المحجوزة function تُستخدَم لتعريف دالة داخل تعبير (expression). انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال. class (تعبير تعريف الأصناف) الكلمة المحجوزة class تشير إلى تعبير تعريف للأصناف. function*‎ (تعبير تعريف الدوال المولدة) الكلمة المحجوزة function*‎ تُستخدَم لتعريف دالة مولِّدة داخل تعبير. انظر إلى صفحة «الدوال في JavaScript» ...

VM (تنفيذ JavaScript) في Node.js

مؤشر الاستقرار: 2 - مستقر. توفر الوحدة vm واجهات تطبيقات لترجمة وتشغيل الشيفرات البرمجية ضمن سياقات آلآت V8 الافتراضية. ويمكن ترجمة شيفرة JavaScript البرمجية وتشغيلها فورًا أو تجميعها وحفظها وتشغيلها لاحقًا. من الاستخدامات الشائعة، تشغيل التعليمات البرمجية في بيئة تجريبية معزولة (sandbox environment). وتُستخدم شيفرة sandbox سياق V8 مختلف، مما يعني انه يحتوي علي كائن عام مختلف عن باقي الشيفرة البرمجية. ويمكن توفير السياق عن طريق وضع كائن sandbox المعزول في السياق. وتعامل الشيفرةُ المعزولة أي خاصية في بيئة sandbox ...

تعبير تعريف الأصناف في JavaScript

تعبير تعريف الأصناف (class expression) هو إحدى الطرائق المستخدمة لتعريف صنف في ECMAScript 2015، وهو شبيه بتعابير تعريف الدوال (function expressions)، ويمكن أن يكون تعبير تعريف الأصناف مسمىً أو غير مسمى، وإذا كان مسمى فسيكون اسم الصنف محليًا لجسم الصنف فقط؛ لاحظ أنَّ الأصناف في JavaScript تستخدم الوراثة عبر سلسلة prototype. البنية العامة var MyClass = class [className] [extends] { // محتويات الصنف }; الوصف يملك تعبير تعريف الأصناف شكلًا شبيهًا بالتصريح عن الأصناف (class declaration) لكن يمكنك حذف اسم ...

التصريح عن الدوال غير المتزامنة في JavaScript

التصريح عن دالة غير متزامنة (asynchronous function declaration) يُعيد كائنًا من النوع AsyncFunction، يمكن أيضًا إنشاء الدوال غير المتزامنة عبر تعابير تعريف الدوال غير المتزامنة (async function expression). البنية العامة async function name([param[, param[, ... param]]]) { statements } name اسم الدالة param اسم الوسيط المُرَّر إلى الدالة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. القيمة المعادة كائن AsyncFunction الذي يُمثِّل الدالة غير المتزامنة ويُنفِّذ الشيفرة الموجودة ضمنها. الوصف عندما تُستدعى دالة غير متزامنة، فستعيد كائن Promise، وعندما تُعيد ...

التعبير البرمجي الفارغ في JavaScript

التعبير البرمجي الفارغ (empty statement) يُستخدَم لتجنب توفير تعبير برمجي في المواضع التي تتطلب فيها JavaScript تعبيرًا برمجيًا واحدًا على الأقل. البنية العامة ; الوصف التعبير الفارغ هو فاصلة منقوطة ; الذي يُشير إلى عدم وجود تعبير لتنفيذه حتى لو تطلبت JavaScript تعبيرًا أو أكثر؛ وفي المقابل، إذا كانت JavaScript تقبل باستخدام تعبير واحد فمن الممكن استخدم الأقسام الكتلية (block statement) لتجميع أكثر من تعبير برمجي. أمثلة قد يُستخدَم التعبير البرمجي الفارغ مع حلقات التكرار، لاحظ المثال الآتي الذي فيه ...

المحدد ‎‎‎:gt()‎‎ في jQuery

المحدد ‎:gt()‎ الوصف يحدِّد كل العناصر التي لها فهرس (index) أكبر من المعامل index المعطى داخل المجموعة المطابقة. jQuery(" :gt(index) ")‎ أُضيف مع الإصدار: 1.0. index فهرس صفري للعنصر المراد مطابقته. jQuery( ":gt(-index)" )‎ أُضيف مع الإصدار: 1.8. indexFromEnd فهرس صفري، معدود تنازليًا من العنصر الأخير. المحددات المتعلقة بالفهرس (index-related selectors) تنتقي المحددات المتعلقة بالفهرس مجموعةً من العناصر التي تطابقت مع التعابير سابقًا. إذ تقلِّص العناصر بناءً على ترتيبها في المجموعة المتطابقة. لنفترض مثلا أنه حُدِّدت أولًا العناصر الموجودة في محدد ...

نظرة عامة على وحدة العرض في ريلز

بعد قراءة هذا الدليل، ستعرف: ما هو Action View وكيفية استخدامه مع ريلز. أفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات. ما الذي يقدمه المساعدون عن طريق Action View. كيفية استخدام العروض المحلية. ما هو Action View؟ في ريلز، تُعَالَج طلبات الويب من خلال Action Controller و Action View. عادةً ما يقع على عاتق وحدة التحكم التواصل مع قاعدة البيانات وتنفيذ الإجراءات CRUD عند الضرورة؛ بعد ذلك، يكون Action View مسؤولًا عن تفسير (compiling) الاستجابة. تُكتَب قوالب Action View باستخدام روبي ...

العوارض في منصة iOS في كوردوفا

يوضح هذا الدليل كيفية تضمين مُكوّن (component) عارض كوردوفا في تطبيقات منصة iOS الكبيرة. للمزيد من التفاصيل حول كيفية جعل تلك المكوّنات تتواصل مع بعضها، راجع دليل تطوير الإضافات. بدأ دعم العوارض في منصة iOS منذ الإصدار 1.4 كوردوفا، باستخدام مكوِّن Cleaver الذي بُنِي على قالب Xcode. منصة كوردوفا 2.0 والإصدارات الأحدث لا تدعم إلا التقديم المستند إلى المشروع الفرعي (subproject-based) للمكُوِّن Cleaver. تتطلب هذه الإرشادات على الأقل الإصدار الرابع من كوردوفا، والثامن من Xcode، بالإضافة إلى الملف config.xml من ...

تخطيط الصفحات والتصيير في ريلز

يغطي هذا الدليل ميزات التخطيط الأساسية لوحدتي التحكم والعرض. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام توابع التصيير المختلفة المضمنة ‎في ريلز. كيفية إنشاء تخطيطات (layouts) تحتوي على أقسام محتوى متعددة. كيفية استخدام الأجزاء مع واجهات العرض. كيفية استخدام تخطيطات متداخلة (قوالب فرعية). نظرة عامة: كيف تتراكب قطع الأحجية معًا يركز هذا الدليل على التفاعل بين المتحكم والعرض في نمط التصميم Model-View-Controller. كما تعلم، فإنَّ المتحكم مسؤول عن تنظيم العملية الكاملة للتعامل مع الطلب في ريلز، على الرغم من أنه ...

تعابير تعريف الدوال غير المتزامنة في JavaScript

الكلمة المحجوزة async function تُستخدَم لتعريف دوال غير متزامنة ضمن تعبير (expression). طريقة أخرى لتعريف الدوال غير المتزامنة في JavaScript هي التصريح عنها. البنية العامة async function name([param[, param[, ... param]]]) { statements } name اسم الدالة، ويمكن حذفه وحينئذٍ ستسمى الدالة بالدالة المجهولة؛ واسم الدالة لن يكون متاحًا إلا داخل الدالة نفسها (يمكن أن يستعمل لتنفيذها تعاوديًا [recursively]). param اسم الوسيط المُرَّر إلى الدالة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. الوصف تعابير تعريف الدوال غير المتزامنة تشبه ...

التحقق من الأنواع في ملفات JavaScript في TypeScript

مقدمة أصبحت TypeScript منذ النسخة 2.3 تدعم التحقق من الأنواع والإبلاغ عن الأخطاء في ملفّات ‎.js‎ مع خيار المترجم ‎--checkJs‎. يمكنك تخطي التحقق من ملفّاتٍ معيّنة عبر إضافة التعليق ‎// @ts-nocheck‎ إليها؛ وفي المقابل يمكنك اختيار ملفّات ‎.js‎ التي تريد التحقق منها عبر إضافة التعليق ‎// @ts-check‎ إليها دون استخدام الخيار ‎‎--checkJs‎‎. يمكنك كذلك تجاهل الأخطاء على أسطرٍ محدَّدة عبر إضافة التعليق ‎// @ts-ignore‎ على نفس السطر. لاحظ أنّه عند ضبط ملفّ ‎tsconfig.json‎، فالتحقق من ملفات JavaScript سيحترم الخيارات الصارمة ...

البنية المختصرة لتعريف الدوال في JavaScript

بدءًا من ECMAScript 2015 (أي ES6)، يمكن تعريف الدوال التابعة للكائن بطريقة مختصرة عند تهيئة الكائنات. البنية العامة var obj = { property( parameters… ) {}, *generator( parameters… ) {}, async property( parameters… ) {}, async* generator( parameters… ) {}, // مع مفاتيح محسوبة [property]( parameters… ) {}, *[generator]( parameters… ) {}, async [property]( parameters… ) {}, // قارن مع شكل getter/setter get property() {}, set property(value) {} }; الوصف ...

استخدام لغة Kotlin في نطاق JavaScript

تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد ...

تعابير تعريف الدوال المولدة في JavaScript

الكلمة المحجوزة function*‎ تُستخدَم لتعريف دالة مولِّدة داخل تعبير. البنية العامة function* name([param[, param[, ... param]]]) { statements } name اسم الدالة، ويمكن حذفه وحينئذٍ ستسمى الدالة بالدالة المجهولة؛ واسم الدالة لن يكون متاحًا إلا داخل الدالة نفسها (يمكن أن يستعمل لتنفيذها تعاوديًا [recursively]). param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي يُفسِّر اللغة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. الوصف تعابير تعريف الدوال المولِّدة تشبه كثيرًا (وتكاد ...

إضافة اتجاه الشاشة في كوردوفا

تُستخدَم إضافة اتجاه الشاشة (cordova-plugin-screen-orientation) للتحكم باتجاه الشاشة (عبر ضبطها إلى اتجاه محدَّد أو منع تغيير الاتجاه) بشكل موحَّد في المنصات iOS وأندرويد و windows-uwp. تعتمد هذه الإضافة على الواجهة البرمجية لاتجاه الشاشة، حتى تتطابق مع المواصفات الحالية. تضيف هذه الإضافة العناصر التالية إلى كائن الشاشة window.screen: // منع تغيير اتجاه الشاشة .orientation.lock('portrait') // السماح بتغيير اتجاه الشاشة .orientation.unlock() // الاتجاه الحالي .orientation‎ التثبيت يمكن تثبيت هذه الإضافة عبر الأمر التالي: cordova plugin add cordova-plugin-screen-orientation‎ الاتجاهات المدعومة portrait-primary يمثل هذا الاتجاه الوضع العمودي الأولي (primary ...

JSX في TypeScript

مقدمة JSX بنيةٌ (syntax) مشابهةٌ للغة XML يُمكن تضمينها وتحويلها إلى شيفرة JavaScript صالحة، لكن آلية عملية التحويل تختلف من تطبيق (implementation) إلى آخر. اشتهرت JSX باستخدامها مع مكتبة React، لكنها تملك تطبيقات أخرى غير React. تدعم لغة TypeScript تضمين JSX، وتدقيق الأنواع فيها، وكذا ترجمة JSX إلى JavaScript مباشرةً. ملاحظة حول المصطلحات: نستخدم في هذه الصّفحة كلمة "صِفَة" للإشارة إلى الكلمة الإنجليزيّة "attribute" وكلمة "خاصيّة" للإشارة إلى كلمة "property"، كلاهما يُترجَم إلى كلمة "خاصيّة" ولهما نفس المعنى في معظم ...

خط أنابيب الأصول في ريلز

يغطّي هذا الدليل أنبوب الأصول. ستتعلم بعد قراءة هذا الدليل: ماهيّة أنبوب الأصول وماذا يفعل. كيفيّة تنظيم أصول تطبيقك بشكل صحيح. فوائد أنبوب الأصول. كيفيّة إضافة معالج مسبق (pre-processor) إلى الأنبوب. كيفيّة وضع الأصول مع جوهرة في حزمة. ما هو أنبوب الأصول؟ يوفّر أنبوب الأصول إطارًا لسَلسَلة وتصغير أو ضغط أصول JavaScript و CSS. كما أنه يضيف القدرة على كتابة هذه الأصول بلغات أخرى ومعالجات مسبقة مثل CoffeeScript و Sass و ERB. يسمح للأصول في تطبيقك أن تُدمج تلقائيًّا مع ...

الأحداث في jQuery

تُستخدَم التوابع الموجودة في هذا القسم لتسجيل سلوكيات محدَّدة تحدث عندما وقع حدث معين ناتج عن تفاعل المستخدم مع المتصفح. أضف إلى ذلك وجود توابع تساعد على التعديل والتلاعب بتلك السلوكيات المسجلة مسبقًا. ‎.bind()‎ يُرفِق هذا التّابع مُعالِج أحداث (Event handler) لحدثٍ ما للعناصر. ‎.blur()‎ يربط هذا التّابع مُعالِج أحداث (event handler) إلى حدث الضّبابيّة ‎(blur)‎ في JavaScript، أو يُطلِق هذا الحدث على عنصر ما. ‎.change()‎ يربط هذا التّابع مُعالِج الأحداث (event handler) لتغيير حدث JavaScript أو يُطلِق هذا الحدث ...

مدخل إلى TypeScript

يُشار إلى TypeScript على أنّها مجموعة عليا (superset) من JavaScript وتُترجم (compile) إليها. وهذا يعني بأن البرامج المكتوبة بلغة JavaScript هي برامج TypeScript صالحة كذلك، ولأنّها تُترجم إلى لغة JavaScript عاديّة، فيُمكن كتابة برامج بلغة TypeScript وترجمتها وتشغيلها في أي مكان يقبل تشغيل برمجيات JavaScript مثل المتصفّح، أو منصّة Node.js، أو أي مُحرّكٍ (engine) يدعم الإصدار ECMAScript 3 من لغة JavaScript أو أي إصدار أحدث منه. تدعم TypeScript مزايا JavaScript الجديدة والتي قيد التطوير، ما يشمل مزايا الإصدار ECMAScript 2015 ...

التابع ‎‎jQuery.globalEval()‎‎ في jQuery

jQuery.globalEval( code )‎ القيم المعادة يعيد أي شيء (وهو نوع افتراضي مُستخدَم في jQuery للإشارة إلى إمكانيَّة إعادة أي نوع). الوصف يُنفِّذ هذا التابع جزءًا من شيفرة JavaScript على الصعيد العام. jQuery.globalEval( code )‎ أُضيفت مع الإصدار: 1.0.4 code سلسلة نصية تحوي شيفرة JavaScript المراد تنفيذها. يسلك هذا التابع سلوكًا مختلفًا عن سلوك الدالة eval()‎ الطبيعي في JavaScript، إذ يُنفَّذ التابع ضمن السياق العام (هذا السلوك مهم لتحميل سكربتات خارجيَّة ديناميكيًّا). أمثلة تنفيذ سكربت في السياق العام (global context): function ...

التابع ‎‎jQuery.globalEval()‎‎ في jQuery

jQuery.globalEval( code )‎ القيم المعادة يعيد أي شيء (وهو نوع افتراضي مُستخدَم في jQuery للإشارة إلى إمكانيَّة إعادة أي نوع). الوصف يُنفِّذ هذا التابع جزءًا من شيفرة JavaScript على الصعيد العام. jQuery.globalEval( code )‎ أُضيفت مع الإصدار: 1.0.4 code سلسلة نصية تحوي شيفرة JavaScript المراد تنفيذها. يسلك هذا التابع سلوكًا مختلفًا عن سلوك الدالة eval()‎ الطبيعي في JavaScript، إذ يُنفَّذ التابع ضمن السياق العام (هذا السلوك مهم لتحميل سكربتات خارجيَّة ديناميكيًّا). أمثلة تنفيذ سكربت في السياق العام (global context): function ...

مقدمة إلى JSX في React

فلننظر إلى تعريف هذا المتغير: const element = <h1>!أهلًا بالعالم</h1>; إنّ الصّياغة الغريبة السّابقة التي تحتوي على وسم هي ليست سلسلة نصيّة ولا حتى HTML. تُدعى الصّياغة السّابقة JSX وهي عبارة عن امتداد لصياغة JavaScript، نوصي باستخدامها مع React لوصف المظهر الذي ينبغي أن تكون عليه واجهة المستخدم. قد تُذكِّرك JSX بلغات القوالب، ولكنها تمتلك قوة JavaScript الكاملة. تُنتِج JSX عناصر React. سنستعرض إظهار هذه العناصر في DOM في قسم تصيير العناصر (Rendering Elements). سنتحدّث في الفقرات التالية عن أساسيّات JSX ...

Object.prototype.valueOf()‎

الدالة Object.prototype.valueOf()‎ تُعيد قيمةً أوليّةً للكائن المعطي. البنية العامة object.valueOf() القيمة المعادة قيمة أوليّة للكائن المعطي. الوصف تستدعي JavaScript الدالة valueOf لتحويل كائن ما إلى قيمة أوليّة، ومن النادر أن تحتاج إلى استدعاء الدالة valueOf يدويًا، إذ تستدعيها JavaScript تلقائيًا عندما تصادف كائنًا في مكانٍ تتوقع فيه قيمةً أوليةً. جميع الكائنات التي تنحدر من الكائن Object ترث الدالة valueOf، وتُعيد جميع الكائنات المُضمَّنة في اللغة تعريف هذه الدالة لتعيد القيمة المناسبة؛ وإذا لم يكن من الممكن تمثيل الكائن بقيمة أوليّة، ...

التابع ‎‎jQuery.parseJSON()‎‎ في jQuery

jQuery.parseJSON( json )‎ أهمل مع الإصدار: 3.0. القيم المعادة يعيد مصفوفةً (Array) أو سلسلةً نصيةً (String) أو عددًا (Number) أو كائنًا (Object) أو قيمة منطقيَّة (Boolean). الوصف يفسِّر هذا التابع سلسلة نصية بصيغة JSON إلى قيمة مقابلة في JavaScript. jQuery.parseJSON( json )‎ أُضيف مع الإصدار: 1.4.1. json سلسلة نصية بصيغة JSON يراد تفسيرها. بدءًا من الإصدار jQuery 3.0، أهمل التابع ‎$.parseJSON()‎، لذا استعمل التابع JSON.parse()‎ الأساسي في JavaScript عوضًا عنه. سيُرمى استثناءٌ في JavaScript إذا لم تكن السلسلة النصية المعطاة ...

التابع ‎‎jQuery.parseJSON()‎‎ في jQuery

jQuery.parseJSON( json )‎ أهمل مع الإصدار: 3.0. القيم المعادة يعيد مصفوفةً (Array) أو سلسلةً نصيةً (String) أو عددًا (Number) أو كائنًا (Object) أو قيمة منطقيَّة (Boolean). الوصف يفسِّر هذا التابع سلسلة نصية بصيغة JSON إلى قيمة مقابلة في JavaScript. jQuery.parseJSON( json )‎ أُضيف مع الإصدار: 1.4.1. json سلسلة نصية بصيغة JSON يراد تفسيرها. بدءًا من الإصدار jQuery 3.0، أهمل التابع ‎$.parseJSON()‎، لذا استعمل التابع JSON.parse()‎ الأساسي في JavaScript عوضًا عنه. سيُرمى استثناءٌ في JavaScript إذا لم تكن السلسلة النصية المعطاة ...

إنشاء وتخصيص مولدات وقوالب ريلز

مولدات ريلز هي أداة أساسية إذا كنت تخطط لتحسين سير عملك. مع هذا الدليل سوف تتعلم كيفية إنشاء المولدات وتخصيص المولدات الموجودة. بعد قراءة هذا الدليل، ستتعلم: كيفية معرفة أي المولدات المتوفرة في التطبيق الخاص بك. كيفية إنشاء مولد باستخدام القوالب. كيفية بحث ريلز عن المولدات قبل استدعائها. كيفية إنشاء ريلز داخليًا شيفرة من القوالب. كيفية تخصيص المولد scaffold عن طريق إنشاء مولدات جديدة. كيفية تخصيص المولد scaffold عن طريق تغيير قوالب المولدات. كيفية استخدام التراجعات (fallbacks) لتجنب استبدال مجموعة ...

Symbol.prototype[@@toPrimitive]‎‎

الدالة Symbol.prototype[@@toPrimitive]‎ تحوّل كائن Symbol إلى قيمة أوليّة. البنية العامة Symbol()[Symbol.toPrimitive](hint); القيمة المعادة القيمة الأولية لكائن Symbol المُحدَّد. الوصف الدالة ‎[@@toPrimitive]()‎‎ التابعة للكائن Symbol تُعيد القيمة الأولية للكائن Symbol. لا يُستخدَم الوسيط hint. تستدعي JavaScript الدالة ‎[@@toPrimitive]()‎‎ لتحويل كائن ما إلى قيمة أوليّة، ومن النادر أن تحتاج إلى استدعاء الدالة ‎[@@toPrimitive]()‎‎ يدويًا، إذ تستدعيها JavaScript تلقائيًا عندما تصادف كائنًا في مكانٍ تتوقع فيه قيمةً أوليةً. دعم المتصفحات الميزة Chrome Firefox Internet Explorer Opera Safari الدعم الأساسي ؟ 44 غير مدعومة ؟ ؟ مصادر ومواصفات ...

القوائم المنسدلة Dropdowns في إطار العمل Bootstrap

أظهر تراكيب سياقيّة لعرض قوائم روابط أو غيرها من العناصر باستخدام مُلحَق القوائم المنسدلة Dropdowns في إطار العمل Bootstrap. نظرة عامّة القوائم المنسدلة هي تراكيب سياقيّة يمكن التبديل بينها لعرض قوائم روابط أو عناصر أخرى. يعمل مُلحَق JavaScript الخاصّ بالقوائم المنسدلة المُضمَّن في إطار العمل Bootstrap على جعل القوائم تفاعليّة. يُبدَّل بين عناصر القائمة بالنقر وليس بالحومان؛ اختير هذا السلوك في التصميم على نحوٍ واع. تُبنَى القوائم المنسدلة على مكتبة Popper.js التي توفّر تموضعًا ديناميكيًّا للعناصر واكتشاف إطار العرض Viewport. ...

المصطلحات في React

التطبيق وحيد الصفحة التطبيق وحيد الصفحة (Single-page Application) هو التطبيق الذي يُحمِّل صفحة HTML واحدة وكل ملحقاتها الضرورية (مثل CSS و JavaScript) المطلوبة لكي يعمل التطبيق. لا تتطلّب أيّة تفاعلات مع الصفحة أو الصفحات اللاحقة أي عودة للخادم مرّة أخرى، ممّا يعني عدم إعادة تحميل الصفحة. بالرغم من قدرتك على بناء تطبيق وحيد الصفحة في React فهو ليس أمرًا ضروريًّا. يُمكِن أيضًا استخدام React لتحسين أجزاء صغيرة من الموقع مع الحصول على تفاعليّة أكبر. يُمكِن للشيفرة المكتوبة باستخدام React أن ...

Symbol.prototype.valueOf()‎

الدالة Symbol.prototype.valueOf()‎ تعيد القيمة الأوليّة (primitive value) لكائن Symbol. البنية العامة Symbol().valueOf(); القيمة المعادة القيمة الأولية للكائن Symbol. الوصف الدالة valueOf التابعة للكائن Symbol تُعيد القيمة الأولية للكائن Symbol. تستدعي JavaScript الدالة valueOf لتحويل كائن ما إلى قيمة أوليّة، ومن النادر أن تحتاج إلى استدعاء الدالة valueOf يدويًا، إذ تستدعيها JavaScript تلقائيًا عندما تصادف كائنًا في مكانٍ تتوقع فيه قيمةً أوليةً. دعم المتصفحات الميزة Chrome Firefox Internet Explorer Opera Safari الدعم الأساسي 38 36 غير مدعومة 25 9 على النقيض من متصفح IE، يدعم ...

Number.prototype.valueOf()‎

الدالة Number.prototype.valueOf()‎ تُعيد القيمة الأوليّة (primitive value) لأحد كائنات Number. البنية العامة numObj.valueOf() القيمة المعادة عدد يُمثِّل القيمة الأوليّة لكائن Number المُحدَّد. الوصف تستدعي JavaScript الدالة valueOf لتحويل كائن Number إلى قيمة أوليّة، ومن النادر أن تحتاج إلى استدعاء الدالة valueOf يدويًا، إذ تستدعيها JavaScript تلقائيًا عند الحاجة. أمثلة var numObj = new Number(10); console.log(typeof numObj); // object var num = numObj.valueOf(); console.log(num); // 10 console.log(typeof num); // number دعم المتصفحات الميزة Chrome Firefox Internet ...

مساعدو الاستمارة في وحدة العرض في ريلز

تعتبر الاستمارات (forms) في تطبيقات الويب واجهة أساسية للتفاعل مع المستخدم وجلب بيانات منه. ومع ذلك، يمكن أن تصبح عملية إنشاء استمارةٍ وصيانتها عمليةً مملةً بسبب الحاجة إلى التحكم بالتسميات وبخاصياتها الكثيرة. تخلَّص ريلز من هذا التعقيد بتوفير مساعدين للعرض لإنشاء الاستمارات بسهولة. ومع ذلك، بما أن للمساعدين حالات استخدام مختلفة، يحتاج المطورون إلى معرفة الاختلافات بين توابع كل مساعد قبل استخدامها. بعد قراءة هذا الدليل، ستتعلم: كيفية إنشاء استمارات للبحث ونوع مماثل من الاستمارات العامة التي لا تمثل أي ...

التابع ‎‎jQuery.isEmptyObject()‎‎ في jQuery

jQuery.isEmptyObject( object )‎ القيم المعادة يعيد قيمةً منطقيَّةً (Boolean). الوصف يتحقَّق هذا التابع إن كان الكائن المُمرَّر إليه فارغًا (لا يحوي أيَّة خاصِّيَّة قابلة للإحصاء) أم لا. jQuery.isEmptyObject( object )‎ أُضيف مع الإصدار: 1.4. objcet الكائن المراد التحقُّق منه لمعرفة إن كان فارغًا أم لا. بدءًا من الإصدار jQuery 1.4، أصبح هذا التابع يتحقَّق من خاصِّيَّات الكائن نفسه، والخاصِّيَّات الموروثة عبر سلسلة prototypes (لا يستخدم هنا hasOwnProperty). يجب أن يكون الوسيط المعطى كائن JavaScript مجرَّد (Object)، إذ قد لا تعطي ...

التابع ‎‎jQuery.isEmptyObject()‎‎ في jQuery

jQuery.isEmptyObject( object )‎ القيم المعادة يعيد قيمةً منطقيَّةً (Boolean). الوصف يتحقَّق هذا التابع إن كان الكائن المُمرَّر إليه فارغًا (لا يحوي أيَّة خاصِّيَّة قابلة للإحصاء) أم لا. jQuery.isEmptyObject( object )‎ أُضيف مع الإصدار: 1.4. objcet الكائن المراد التحقُّق منه لمعرفة إن كان فارغًا أم لا. بدءًا من الإصدار jQuery 1.4، أصبح هذا التابع يتحقَّق من خاصِّيَّات الكائن نفسه، والخاصِّيَّات الموروثة عبر سلسلة prototypes (لا يستخدم هنا hasOwnProperty). يجب أن يكون الوسيط المعطى كائن JavaScript مجرَّد (Object)، إذ قد لا تعطي ...

String.prototype.valueOf()‎

الدالة String.prototype.valueOf()‎ تُعيد القيمة الأوليّة (primitive value). البنية العامة str.valueOf() القيمة المعادة سلسلة نصية تُمثِّل القيمة الأوليّة لكائن String المعطي. الوصف الدالة valueOf()‎ التابعة للكائن String تُعيد القيمة الأوليّة لأحد كائنات String كنوع البيانات string، وهي مكافئة للدالة String.prototype.toString()‎. تستدعي JavaScript الدالة valueOf لتحويل كائن String إلى قيمة أوليّة، ومن النادر أن تحتاج إلى استدعاء الدالة valueOf يدويًا، إذ تستدعيها JavaScript تلقائيًا عند الحاجة. أمثلة استخدام valueOf()‎ var x = new String('Hello world'); console.log(x.valueOf()); // 'Hello world' دعم المتصفحات الميزة Chrome Firefox Internet Explorer Opera Safari الدعم ...

نمط Strict

نمط Strict أتى في معيار ECMAScript 5 لإضافة «صرامة» في تطبيق شيفرات JavaScript، لاحظ أنَّ نمط strict لا يُشكِّل قسمًا فرعيًا من JavaScript، وإنما له بنية خاصة به تختلف عن الشيفرات العادية. فالمتصفحات التي لا تدعم نمط strict ستُشغِّل الشيفرات بطريقة مختلفة عن المتصفحات التي تدعمه، لذا لا تعتمد على نمط strict دون اختبار دعمه أولًا من المتصفح. نمط Strict يُضيف عددًا من التغييرات على بنية JavaScript، فلم تعد تسكت JavaScript عن الأخطاء وإنما أصبحت ترمي استثناءات عند حدوثها؛ ونمط ...

الحقل button

عناصر <input> ذات النوع button تُعرَض كأزرار عادية، والتي يمكن برمجتها للتحكم بأي شيء في الصفحة عبر ربط دالة معالجة أحداث معها (التي تُعالِج الحدث click عادةً). وعلى الرغم من أنَّ عناصر <input> ذات النوع button صحيحة تمامًا في HTML، لكن من المفضّل استخدام عنصر <button> الجديد لإنشاء الأزرار، لأن له ميزات إضافية، مثل دعمه للقيمة menu في الخاصية type التي تعني أنَّ الزر يستعمل لتفعيل قائمة منبثقة، والسماح بإضافة نص اللافتة للعنصر <button> بين وسم البداية ووسم النهاية مما ...

عرض (100 السابقة | 100 التالية) (20 | 50 | 100 | 250 | 500).