يلخص هذا الفصل بإيجاز ميزات JavaScript التي تعلمناها حتى الآن، مع إيلاء اهتمام خاص للحظات الدقيقة.
يتم الفصل بين البيانات بفاصلة منقوطة:
تنبيه('مرحبا'); تنبيه("العالم");
عادة، يتم أيضًا التعامل مع فاصل الأسطر كمحدد، لذلك قد ينجح ذلك أيضًا:
تنبيه ("مرحبًا") تنبيه ("العالم")
وهذا ما يسمى "الإدراج التلقائي للفاصلة المنقوطة". في بعض الأحيان لا يعمل، على سبيل المثال:
تنبيه ("سيكون هناك خطأ بعد هذه الرسالة") [1، 2].forEach(تنبيه)
تتفق معظم أدلة أسلوب التعليمات البرمجية على ضرورة وضع فاصلة منقوطة بعد كل عبارة.
الفواصل المنقوطة ليست مطلوبة بعد كتل التعليمات البرمجية {...}
ويتم إنشاء بناء الجملة معها مثل الحلقات:
الدالة و() { // لا حاجة لفاصلة منقوطة بعد إعلان الوظيفة } ل(؛؛) { // لا حاجة لفاصلة منقوطة بعد الحلقة }
…ولكن حتى لو تمكنا من وضع فاصلة منقوطة “إضافية” في مكان ما، فهذا ليس خطأ. سيتم تجاهله.
المزيد في: بنية الكود.
لتمكين كافة ميزات جافا سكريبت الحديثة بشكل كامل، يجب أن نبدأ البرامج النصية بـ "use strict"
.
"استخدام صارم"؛ ...
يجب أن يكون التوجيه في أعلى البرنامج النصي أو في بداية نص الوظيفة.
بدون "use strict"
، سيظل كل شيء يعمل، لكن بعض الميزات تتصرف بالطريقة القديمة "المتوافقة". نحن نفضل بشكل عام السلوك الحديث.
بعض الميزات الحديثة للغة (مثل الفصول التي سندرسها في المستقبل) تتيح الوضع الصارم ضمنيًا.
المزيد في: الوضع الحديث، "استخدام صارم".
يمكن الإعلان عنها باستخدام:
let
const
(ثابت، لا يمكن تغييره)
var
(النمط القديم، سنرى لاحقًا)
يمكن أن يتضمن اسم المتغير ما يلي:
الحروف والأرقام، ولكن لا يجوز أن يكون الحرف الأول رقمًا.
الأحرف $
و _
عادية، على قدم المساواة مع الحروف.
يُسمح أيضًا باستخدام الحروف الهجائية غير اللاتينية والهيروغليفية، ولكن لا يتم استخدامها بشكل شائع.
يتم كتابة المتغيرات بشكل ديناميكي. يمكنهم تخزين أي قيمة:
دع س = 5؛ س = "جون";
هناك 8 أنواع من البيانات:
number
لكل من الفاصلة العائمة والأعداد الصحيحة،
bigint
للأعداد الصحيحة ذات الطول التعسفي،
string
للسلاسل،
boolean
للقيم المنطقية: true/false
،
null
- نوع ذو قيمة واحدة null
، ويعني "فارغ" أو "غير موجود"،
undefined
- نوع ذو قيمة واحدة undefined
، ويعني "لم يتم تعيينه"،
object
symbol
- بالنسبة لهياكل البيانات المعقدة والمعرفات الفريدة، لم نتعلمها بعد.
يُرجع عامل typeof
نوع القيمة، مع استثناءين:
typeof null == "object" // خطأ في اللغة typeof function(){} == "function" // يتم التعامل مع الوظائف بشكل خاص
المزيد في: المتغيرات وأنواع البيانات.
نحن نستخدم المتصفح كبيئة عمل، لذا ستكون وظائف واجهة المستخدم الأساسية هي:
prompt(question, [default])
اطرح question
وأعد ما أدخله الزائر أو قم بإرجاعه null
إذا نقر على "إلغاء".
confirm(question)
اطرح question
واقترح الاختيار بين "موافق" و"إلغاء". يتم إرجاع الاختيار كـ true/false
.
alert(message)
إخراج message
.
كل هذه الوظائف مشروطة ، فهي توقف تنفيذ التعليمات البرمجية مؤقتًا وتمنع الزائر من التفاعل مع الصفحة حتى يقوم بالرد.
على سبيل المثال:
دع اسم المستخدم = موجه("اسمك؟", "أليس"); Let isTeaWanted = Confirm("هل تريد بعض الشاي؟"); تنبيه ("الزائر:" + اسم المستخدم )؛ // أليس تنبيه("الشاي المطلوب:" + isTeaWanted ); // حقيقي
المزيد في: التفاعل: تنبيه، موجه، تأكيد.
تدعم JavaScript عوامل التشغيل التالية:
حسابي
العادي: * + - /
، وكذلك %
للباقي و **
لقوة الرقم.
يقوم الجمع الثنائي +
بتسلسل السلاسل. وإذا كان أي من المعاملات عبارة عن سلسلة، فسيتم تحويل الآخر إلى سلسلة أيضًا:
تنبيه('1'+2); // '12'، سلسلة تنبيه(1 + '2' ); // '12'، سلسلة
المهام
هناك مهمة بسيطة: a = b
وأخرى مدمجة مثل a *= 2
.
Bitwise
تعمل عوامل تشغيل Bitwise مع أعداد صحيحة 32 بت على أدنى مستوى بت: راجع المستندات عند الحاجة إليها.
شرطي
المشغل الوحيد الذي يحتوي على ثلاث معلمات: cond ? resultA : resultB
. إذا كانت cond
صحيحة، فستُرجع resultA
، وإلا resultB
.
العوامل المنطقية
منطقية AND &&
وOR ||
قم بإجراء تقييم الدائرة القصيرة ثم قم بإرجاع القيمة حيث توقفت (ليس من الضروري true
/ false
). منطقي لا !
يحول المعامل إلى نوع منطقي ويعيد القيمة العكسية.
عامل الدمج الفارغ
??
يوفر عامل التشغيل طريقة لاختيار قيمة محددة من قائمة المتغيرات. النتيجة a ?? b
هو a
ما لم يكن null/undefined
، ثم b
.
مقارنات
التحقق من المساواة ==
للقيم ذات الأنواع المختلفة يحولها إلى أرقام (ما عدا القيم null
undefined
التي تساوي بعضها البعض ولا شيء آخر)، لذا فهي متساوية:
تنبيه (0 == خطأ)؛ // حقيقي تنبيه(0 == ''); // حقيقي
يتم تحويل المقارنات الأخرى إلى رقم أيضًا.
عامل المساواة الصارمة ===
لا يقوم بالتحويل: الأنواع المختلفة تعني دائمًا قيمًا مختلفة له.
القيم null
undefined
خاصة: فهي تساوي ==
بعضها البعض ولا تساوي أي شيء آخر.
تقارن المقارنات الأكبر/الأقل السلاسل حرفًا بحرف، ويتم تحويل الأنواع الأخرى إلى رقم.
مشغلين آخرين
هناك عدد قليل من الآخرين، مثل عامل الفاصلة.
المزيد في: العوامل الأساسية، والرياضيات، والمقارنات، والعوامل المنطقية، وعامل الدمج الفارغ '؟؟'.
قمنا بتغطية 3 أنواع من الحلقات:
// 1 بينما (الشرط) { ... } // 2 يفعل { ... } بينما (الحالة)؛ // 3 من أجل (دع i = 0؛ i < 10؛ i++) { ... }
المتغير المعلن في حلقة for(let...)
يكون مرئيًا فقط داخل الحلقة. ولكن يمكننا أيضًا حذف let
وإعادة استخدام متغير موجود.
تسمح التوجيهات break/continue
بالخروج من الحلقة بأكملها/التكرار الحالي. استخدم التسميات لكسر الحلقات المتداخلة.
التفاصيل في: الحلقات: while و for.
سندرس لاحقًا المزيد من أنواع الحلقات للتعامل مع الكائنات.
يمكن أن تحل بنية "التبديل" if
عمليات التحقق المتعددة. ويستخدم ===
(المساواة الصارمة) لإجراء المقارنات.
على سبيل المثال:
Let age = موجه('عمرك؟', 18); التبديل (العمر) { الحالة 18: تنبيه("لن يعمل"); // نتيجة المطالبة عبارة عن سلسلة وليس رقمًا استراحة؛ الحالة "18": تنبيه ("هذا يعمل!")؛ استراحة؛ تقصير: تنبيه ("أي قيمة لا تساوي القيمة المذكورة أعلاه")؛ }
التفاصيل في: بيان "التبديل".
لقد تناولنا ثلاث طرق لإنشاء دالة في JavaScript:
إعلان الوظيفة: الوظيفة في تدفق الكود الرئيسي
مجموع الدالة (أ، ب) { دع النتيجة = أ + ب؛ نتيجة الإرجاع؛ }
تعبير الوظيفة: الوظيفة في سياق التعبير
دع المبلغ = الوظيفة (أ، ب) { دع النتيجة = أ + ب؛ نتيجة الإرجاع؛ };
وظائف السهم:
// التعبير على الجانب الأيمن دع المبلغ = (أ، ب) => أ + ب؛ // أو بناء جملة متعدد الأسطر مع { ... }، يجب إرجاعه هنا: دع المبلغ = (أ، ب) => { // ... العودة أ + ب؛ } // بدون وسيطات دعنا نقولHi = () => تنبيه("Hello"); // مع وسيطة واحدة دع مزدوج = ن => ن * 2؛
قد تحتوي الوظائف على متغيرات محلية: تلك المعلنة داخل نصها أو قائمة المعلمات الخاصة بها. هذه المتغيرات تكون مرئية فقط داخل الدالة.
يمكن أن تحتوي المعلمات على قيم افتراضية: function sum(a = 1, b = 2) {...}
.
تقوم الوظائف دائمًا بإرجاع شيء ما. إذا لم يكن هناك عبارة return
، فالنتيجة undefined
.
التفاصيل: راجع الوظائف، ووظائف الأسهم، والأساسيات.
كانت تلك قائمة مختصرة بميزات JavaScript. حتى الآن درسنا الأساسيات فقط. علاوة على ذلك، ستجد في البرنامج التعليمي المزيد من العروض الخاصة والميزات المتقدمة لجافا سكريبت.