الفرق بين المراجعتين لصفحة: «JavaScript/Topics/Statements»

من موسوعة حسوب
لا ملخص تعديل
 
اختصار بعض التكرارات
 
سطر 4: سطر 4:


==== <code>[[JavaScript/block|block]]</code> ====
==== <code>[[JavaScript/block|block]]</code> ====
الأقسام الكتلية (block statement) تُستخدَم لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجين من الأقواس المعقوفة <code>{}</code>.
تُستخدَم الأقسام الكتلية لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجين من الأقواس المعقوفة <code>{}</code>.


==== <code>[[JavaScript/break|break]]</code> ====
==== <code>[[JavaScript/break|break]]</code> ====
التعبير البرمجي <code>break</code> يؤدي إلى إنهاء حلقة التكرار الحالية أو التعبير<code>[[JavaScript/switch|switch]]</code> أو <code>[[JavaScript/label|label]]</code>، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى.
يإنهاء حلقة التكرار الحالية أو التعبير <code>[[JavaScript/switch|switch]]</code> أو <code>[[JavaScript/label|label]]</code>، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى.


==== <code>[[JavaScript/continue|continue]]</code> ====
==== <code>[[JavaScript/continue|continue]]</code> ====
التعبير البرمجي <code>continue</code> يؤدي إلى تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي.
تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي.


==== <code>[[JavaScript/empty|Empty]]</code> ====
==== <code>[[JavaScript/empty|Empty]]</code> ====
التعبير البرمجي الفارغ (empty statement) يُستخدَم لتجنب توفير تعبير برمجي في المواضع التي تتطلب فيها JavaScript تعبيرًا برمجيًا واحدًا على الأقل.
يُستخدَم لتجنب توفير تعبير برمجي في المواضع التي تتطلب فيها JavaScript تعبيرًا برمجيًا واحدًا على الأقل.


==== <code>[[JavaScript/if...else|if...else]]</code> ====
==== <code>[[JavaScript/if...else|if...else]]</code> ====
التعبير البرمجي الشرطي (if statement) يُستخدَم لتنفيذ تعبير برمجي معيّن عندما يكون الشرط محققًا، وإذا كان الشرط غير محققٍ فسيُنفِّذ تعبيرًا برمجيًا آخر.
التعبير البرمجي الشرطي يُستخدَم لتنفيذ تعبير برمجي معيّن عندما يكون الشرط محققًا، وإذا كان الشرط غير محققٍ فسيُنفِّذ تعبيرًا برمجيًا آخر.


==== <code>[[JavaScript/switch|switch]]</code> ====
==== <code>[[JavaScript/switch|switch]]</code> ====
التعبير البرمجي <code>switch</code> يُستخدَم لمطابقة قيمة تعبير برمجي باستخدام عبارة<code>case</code>، ثم يُنفِّذ التعابير البرمجية المرتبطة معها.
يُستخدَم لمطابقة قيمة تعبير برمجي باستخدام عبارة<code>case</code>، ثم يُنفِّذ التعابير البرمجية المرتبطة معها.


==== <code>[[JavaScript/throw|throw]]</code> ====
==== <code>[[JavaScript/throw|throw]]</code> ====
التعبير البرمجي <code>throw</code> يؤدي إلى رمي استثناء (exception) يُعرِّفه المستخدم.
يؤدي إلى رمي استثناء (exception) يُعرِّفه المستخدم.


==== <code>[[JavaScript/try...catch|try...catch]]</code> ====
==== <code>[[JavaScript/try...catch|try...catch]]</code> ====
التعبير البرمجي <code>try...catch</code> يُستخدَم لتجربة قسم من التعابير البرمجية، ويُحدِّد طريقةً لمعالجة الاستثناءات إن رُمِيَت.
يُستخدَم لتجربة قسم من التعابير البرمجية، ويُحدِّد طريقةً لمعالجة الاستثناءات إن رُمِيَت.


=== تعابير التصريح عن متغيرات ===
=== تعابير التصريح عن متغيرات ===
سطر 33: سطر 33:


==== <code>[[JavaScript/let|let]]</code> ====
==== <code>[[JavaScript/let|let]]</code> ====
تعبير <code>let</code> يُصرِّح عن متغير محلي <nowiki/>[[JavaScript/block|للقسم الكتلي]]، ويمكن تهيئة قيمته الابتدائية اختياريًا.
يُصرِّح عن متغير محلي <nowiki/>[[JavaScript/block|للقسم الكتلي]]، ويمكن تهيئة قيمته الابتدائية اختياريًا.


==== <code>[[JavaScript/const|const]]</code> ====
==== <code>[[JavaScript/const|const]]</code> ====
سطر 50: سطر 50:


==== <code>[[JavaScript/return|return]]</code> ====
==== <code>[[JavaScript/return|return]]</code> ====
التعبير البرمجي <code>return</code> يؤدي إلى إنهاء تنفيذ الدالة ويُحدِّد قيمةً لتُعيدها الدالة إلى التعبير الذي استدعاها.
يؤدي إلى إنهاء تنفيذ الدالة ويُحدِّد قيمةً لتُعيدها الدالة إلى التعبير الذي استدعاها.


==== <code>[[JavaScript/class|class]]</code> (التصريح عن صنف) ====
==== <code>[[JavaScript/class|class]]</code> (التصريح عن صنف) ====
سطر 58: سطر 58:


==== <code>[[JavaScript/do...while|do...while]]</code> ====
==== <code>[[JavaScript/do...while|do...while]]</code> ====
التعبير البرمجي <code>do...while</code> يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false)، وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي، مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل.
يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false)، وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي، مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل.


==== <code>[[JavaScript/for|for]]</code> ====
==== <code>[[JavaScript/for|for]]</code> ====
التعبير البرمجي <code>for</code> يُنشِئ حلقة تكرار تتألف من ثلاثة تعبيرات برمجية اختيارية تحيط بها أقواس وتفصل بينها فواصل منقوطة، ويليها تعبيرٌ برمجيٌ (وعادةً يكون <nowiki/>[[JavaScript/block|قسمًا كتليًا]] [block statement]) سيُنفَّذ في كل تكرار للحلقة.
يُنشِئ حلقة تكرار تتألف من ثلاثة تعبيرات برمجية اختيارية تحيط بها أقواس وتفصل بينها فواصل منقوطة، ويليها تعبيرٌ برمجيٌ (وعادةً يكون <nowiki/>[[JavaScript/block|قسمًا كتليًا]] [block statement]) سيُنفَّذ في كل تكرار للحلقة.


==== <code>[[JavaScript/for...in|for...in]]</code> ====
==== <code>[[JavaScript/for...in|for...in]]</code> ====
التعبير البرمجي <code>for...in</code> يُنشِئ حلقة تكرار تمر على الخاصيات القابلة للإحصاء (<code>enumerable properties</code>) التابعة لأحد الكائنات.
يُنشِئ حلقة تكرار تمر على الخاصيات القابلة للإحصاء (<code>enumerable properties</code>) التابعة لأحد الكائنات.


==== <code>[[JavaScript/for...of|for...of]]</code> ====
==== <code>[[JavaScript/for...of|for...of]]</code> ====
التعبير البرمجي <code>for...of</code> يمر على الكائنات التي يمكن الدوران على عناصرها (iterable objects) بما في ذلك الكائن <code>[[JavaScript/Array|Array]]</code> و <code>Map</code> و <code>Set</code> و<code>[[JavaScript/String|String]]</code> و <code>TypedArray</code> و <code>Arguments</code>، وتنفيذ تعابير برمجية معيّنة على قيمة كل خاصية من خاصيات تلك الكائنات.
يمر على الكائنات التي يمكن الدوران على عناصرها (iterable objects) بما في ذلك الكائن <code>[[JavaScript/Array|Array]]</code> و <code>Map</code> و <code>Set</code> و<code>[[JavaScript/String|String]]</code> و <code>TypedArray</code> و <code>Arguments</code>، وتنفيذ تعابير برمجية معيّنة على قيمة كل خاصية من خاصيات تلك الكائنات.


==== <code>[[JavaScript/while|while]]</code> ====
==== <code>[[JavaScript/while|while]]</code> ====
التعبير البرمجي <code>while</code> يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا طالما كان الشرط محققًا (true)، وسيتم التحقق من الشرط قبل تنفيذ التعبير البرمجي.
يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا طالما كان الشرط محققًا (true)، وسيتم التحقق من الشرط قبل تنفيذ التعبير البرمجي.


=== غير ذلك ===
=== غير ذلك ===


==== <code>[[JavaScript/debugger|debugger]]</code> ====
==== <code>[[JavaScript/debugger|debugger]]</code> ====
التعبير البرمجي <code>debugger</code> يؤدي إلى تفعيل وظيفة التنقيح (debugging functionality) المتاحة، مثل بداية نقطة المقاطعة (breakpoint)؛ لكن إن لم يكن هنالك منقِّح أو وظيفة تنقيح متاحة فلن يكون لهذا التعبير أي أثر.
يؤدي إلى تفعيل وظيفة التنقيح (debugging functionality) المتاحة، مثل بداية نقطة المقاطعة (breakpoint)؛ لكن إن لم يكن هنالك منقِّح أو وظيفة تنقيح متاحة فلن يكون لهذا التعبير أي أثر.


==== <code>[[JavaScript/export|export]]</code> ====
==== <code>[[JavaScript/export|export]]</code> ====
التعبير البرمجي <code>export</code> يمكن أن يُستخدَم عند إنشاء وحدات JavaScript (أي JavaScript modules) لتصدير الدوال أو الكائنات أو القيم الأوليّة (primitive values) من وحدة (module) لكي يمكن استخدامها من برنامج آخر باستخدام التعبير البرمجي <code>[[JavaScript/import|import]]</code>.
يمكن أن يُستخدَم عند إنشاء وحدات JavaScript (أي JavaScript modules) لتصدير الدوال أو الكائنات أو القيم الأوليّة (primitive values) من وحدة (module) لكي يمكن استخدامها من برنامج آخر باستخدام التعبير البرمجي <code>[[JavaScript/import|import]]</code>.


==== <code>[[JavaScript/import|import]]</code> ====
==== <code>[[JavaScript/import|import]]</code> ====
التعبير البرمجي <code>import</code> يُستخدَم لاستيراد ما صُدِّر من وحدة (module) أخرى.
يُستخدَم لاستيراد ما صُدِّر من وحدة (module) أخرى.


==== <code>[[JavaScript/label|label]]</code> ====
==== <code>[[JavaScript/label|label]]</code> ====
التعبير البرمجي <code>label</code> يمكن أن يُستخدَم مع التعبير البرمجي <code>[[JavaScript/break|break]]</code> أو<code>[[JavaScript/continue|continue]]</code>، وهو يوضع قبل التعابير البرمجية لإضافة لافتة (مُعرِّف) لها يمكن الإشارة إليها.
يمكن أن يُستخدَم مع التعبير البرمجي <code>[[JavaScript/break|break]]</code> أو<code>[[JavaScript/continue|continue]]</code>، وهو يوضع قبل التعابير البرمجية لإضافة لافتة (مُعرِّف) لها يمكن الإشارة إليها.

المراجعة الحالية بتاريخ 16:03، 31 يناير 2018

في هذا القسم جميع التعابير البرمجية الموجودة في لغة JavaScript.

التحكم في التنفيذ

block

تُستخدَم الأقسام الكتلية لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجين من الأقواس المعقوفة {}.

break

يإنهاء حلقة التكرار الحالية أو التعبير switch أو label، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى.

continue

تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي.

Empty

يُستخدَم لتجنب توفير تعبير برمجي في المواضع التي تتطلب فيها JavaScript تعبيرًا برمجيًا واحدًا على الأقل.

if...else

التعبير البرمجي الشرطي يُستخدَم لتنفيذ تعبير برمجي معيّن عندما يكون الشرط محققًا، وإذا كان الشرط غير محققٍ فسيُنفِّذ تعبيرًا برمجيًا آخر.

switch

يُستخدَم لمطابقة قيمة تعبير برمجي باستخدام عبارةcase، ثم يُنفِّذ التعابير البرمجية المرتبطة معها.

throw

يؤدي إلى رمي استثناء (exception) يُعرِّفه المستخدم.

try...catch

يُستخدَم لتجربة قسم من التعابير البرمجية، ويُحدِّد طريقةً لمعالجة الاستثناءات إن رُمِيَت.

تعابير التصريح عن متغيرات

var

تعبير variable يُصرِّح عن متغير، ويمكن تهيئة قيمته الابتدائية اختياريًا.

let

يُصرِّح عن متغير محلي للقسم الكتلي، ويمكن تهيئة قيمته الابتدائية اختياريًا.

const

التصريح عن ثابت للقراءة فقط.

الدوال والأصناف

function (التصريح عن دالة)

التصريح عن الدالة (function declaration) يُعرِّف دالةً لها معاملات (parameters) معيّنة. انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال.

function*‎ (التصريح عن دالة مولدة)

التصريح عن الدالة المولدة. انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال.

async function (التصريح عن دالة غير متزامنة)

التصريح عن دالة غير متزامنة. انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال.

return

يؤدي إلى إنهاء تنفيذ الدالة ويُحدِّد قيمةً لتُعيدها الدالة إلى التعبير الذي استدعاها.

class (التصريح عن صنف)

التصريح عن الصنف (class declaration) يؤدي إلى إنشاء صنف جديد له اسمٌ معيّن يستخدم الوراثة عبر سلسلة prototype.

حلقات التكرار

do...while

يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false)، وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي، مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل.

for

يُنشِئ حلقة تكرار تتألف من ثلاثة تعبيرات برمجية اختيارية تحيط بها أقواس وتفصل بينها فواصل منقوطة، ويليها تعبيرٌ برمجيٌ (وعادةً يكون قسمًا كتليًا [block statement]) سيُنفَّذ في كل تكرار للحلقة.

for...in

يُنشِئ حلقة تكرار تمر على الخاصيات القابلة للإحصاء (enumerable properties) التابعة لأحد الكائنات.

for...of

يمر على الكائنات التي يمكن الدوران على عناصرها (iterable objects) بما في ذلك الكائن Array و Map و Set وString و TypedArray و Arguments، وتنفيذ تعابير برمجية معيّنة على قيمة كل خاصية من خاصيات تلك الكائنات.

while

يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا طالما كان الشرط محققًا (true)، وسيتم التحقق من الشرط قبل تنفيذ التعبير البرمجي.

غير ذلك

debugger

يؤدي إلى تفعيل وظيفة التنقيح (debugging functionality) المتاحة، مثل بداية نقطة المقاطعة (breakpoint)؛ لكن إن لم يكن هنالك منقِّح أو وظيفة تنقيح متاحة فلن يكون لهذا التعبير أي أثر.

export

يمكن أن يُستخدَم عند إنشاء وحدات JavaScript (أي JavaScript modules) لتصدير الدوال أو الكائنات أو القيم الأوليّة (primitive values) من وحدة (module) لكي يمكن استخدامها من برنامج آخر باستخدام التعبير البرمجي import.

import

يُستخدَم لاستيراد ما صُدِّر من وحدة (module) أخرى.

label

يمكن أن يُستخدَم مع التعبير البرمجي break أوcontinue، وهو يوضع قبل التعابير البرمجية لإضافة لافتة (مُعرِّف) لها يمكن الإشارة إليها.