الكلمات السابقة
يتم تمثيل معظم المشغلين في JavaScript بعلامات علامات الترقيم ، ويتم تمثيل عدد قليل من الكلمات الرئيسية. بناء الجملة الخاص بهم موجز ، لكن عددهم كبير جدًا. يشغل المشغلون دائمًا بعض بناء الجملة الثابتة. فقط من خلال فهم وإتقان هذه المحتويات يمكن استخدام المشغلين بشكل صحيح. ستقدم هذه المقالة نظرة عامة على بناء الجملة لمشغلي JavaScript
عدد المعاملات
يوجد 46 عاملًا في JavaScript. إذا قمت بتصنيفها وفقًا لعدد المعاملات ، فإن معظمها من المشغلين الثنائيين. معاملاتهم اثنين ، وتجمع بين التعبيرات في تعبيرات معقدة.
1 + 2 ؛ صحيح || خطأ شنيع؛
يحول المشغل Unary في JavaScript تعبيرًا إلى تعبير آخر معقد قليلاً ، بما في ذلك 9: 9:
++ - - + ~! حذف typeof voida ++ ؛ typeof true ؛
JavaScript لديه مشغل ثلاثي واحد فقط ، وهو مشغل قياسي مشروط ؟: ، الذي يجمع بين ثلاثة تعبيرات في تعبير واحد
2> 1؟ 2: 1 ؛
أولوية
يتحكم أولوية المشغل في ترتيب تنفيذ المشغلين ، وتنفيذ المشغلين ذوي الأولوية العالية يسبق المشغلين دائمًا للمشغلين ذوي الأولوية المنخفضة.
ينقسم المشغلون الـ 46 إلى 14 مستوى من الأولوية ، من أعلى إلى منخفض:
++ - - + ~! حذف typeof void * / ٪ + - << >> >>> <<= >> = easuleof في ==! ===! == & ^ |
من هذه المستويات ذات الأولوية للمشغل الـ 14 ، يمكننا أن نرى:
مشغل UNARY> مشغل الحساب> مشغل المقارنة> المشغل المنطقي> مشغل Tripartite> مشغل التعيين> مشغل الفاصلة
[ملاحظة] ينتمي مشغل الانقلاب المنطقي إلى مشغل Unary وله أولوية قصوى
مثال
! 2 <1 && 4*3+1 ؛
الموقف أعلاه أكثر تعقيدًا ، ويتحلل تدريجيًا لترتيب العملية
أولاً احسب المشغل أحادي! ،! 2 ؛ // false
// ثم يصبح التعبير خطأ <1 && 4*3 + 1 ؛
حساب المشغل الحسابي 4*3+1 ؛ // 13
// ثم يصبح التعبير خطأ <1 && 13 ؛
حساب مشغل المقارنة <، خطأ <1 ؛ // صحيح
// ثم يصبح التعبير: صحيح && 13 ؛ // 13
يمكن استخدام الأقواس لتحديد ترتيب العمليات بقوة
2+3*5 ؛ // 17 (2+3)*5 ؛ // 25 ؛
الترابط
لدى المشغلين نوعين من خصائص الربط ، أحدهما مرتبط من اليسار إلى اليمين ، مع العلامة L ، والآخر مرتبط من اليمين إلى اليسار ، مع Mark R. يحدد الربط ترتيب العمليات في تعبيرات متعددة للمشغل بنفس الأولوية.
معظم المشغلين لديهم مزيج من اليسار إلى اليمين ، فقط المشغلين أحاديًا ، والمشغلين الشرطيين ومشغلي المهام لديهم مزيج من اليمين إلى اليسار.
w = x + y + z ؛ // يعادل: w = ((x + y) + z) ؛
w = x = y = z ؛ // يعادل: w = (x = (y = z)) ؛
س = أ؟ ب: ج؟ D: ه؟ F: G ؛ // يعادل: q = a؟ B: (C؟ D: (E؟ F: G)) ؛
تحدد أولوية وربط المشغلين ترتيب عملياتهم في التعبيرات المعقدة ، ولكن عندما يكون للاعتداءات الفرعية تأثير متبادل ، سيتغير الترتيب.
مثال
a = 1 ؛ b = a +++a-- * a ++ ؛
قم أولاً بتحليل التعبير ، ووفقًا لترتيب الأولوية ، يتم حساب مشغل الزيادة ومشغل الضرب ومشغل الإضافة ومشغل التعيين على التوالي.
أولاً احسب أول A ++ ؛ // النتيجة هي 1 ، A 2
// يصبح التعبير b = 1+a-- * a ++ ؛
حساب A-؛ // النتيجة 2 ، A هي 1
// يصبح التعبير b = 1+2 * a ++ ؛
احسب الثاني A ++ ؛ // النتيجة هي 1 ، A 2
// يصبح التعبير b = 1 + 2 * 1 ؛
لذلك ، في النهاية أ = 2 ؛ ب = 3 ؛
a = 1 ؛ b = a +++a-- * a ++ ؛ console.log (a ، b) ؛ // 2 3
// بالمثل a = 1 ؛ b = a-- * a +++a ++ ؛ console.log (a ، b) ؛ // 2،1
يكتب
يمكن لبعض المشغلين التصرف على أي نوع بيانات ، لكنهم ما زالوا يرغبون في أن تكون معاملاتهم بيانات من النوع المحدد ، ويعيد معظم المشغلين قيمة نوع معين. في جدول قاعدة المشغل أدناه ، يكون السهم هو نوع المعامل المشغل والسهم هو نوع نتيجة العملية بعد السهم هو نوع نتيجة العملية.
【LVALUE】
Lvalue هو مصطلح قديم يعني أن التعبيرات لا يمكن أن تظهر إلا على الجانب الأيسر من المشغل.
في JavaScript ، كل من المتغيرات وخصائص الكائن وعناصر الصفيف كلها LVALUES
نوع المعامل من مشغل الزيادة ++ ، المشغل المتناقص- ومشغلي المهام هو lvalue
var a = 3 ؛ a ++ ؛ // 33-؛ // الإبلاغ عن خطأ ({}). a+= '1' ؛ // 'undefined1''test'-= 'test' ؛ //جدول قواعد المشغل
نوع تشغيل المشغل ++ زيادة lval-> num-انخفاض lval-> num- عكس num-> num+ تحويل إلى رقم num-> num ~ invence int-> int! منطقي غير البول-> سمة حذف booldelete lval-> نوع اكتشاف booltypeof من أي نوع-> إرجاع strvoid غير محدد أي- Num-> num ******************************************************************************************** التحول الأيمن int ، int-> int *********************************************************************************** <= >> = قارن رقم ترتيب الرقم ، num- str ، obj-> bool *************************************************************************************** أي-> bool ********************************************************* & bitwise and int ، int- int-> int *********************************************************************************************************** المنطق أو أي ، أي-> أي ******************************************************* Bool ، أي ، أي-> أي ***************************************************************************************************************************** ***************************************************************************************************** ***************************************************************************************************** ***************************************************************************************************** ***************************************************************************************************** ***************************************************************************************************** ***************************************************************************************************** *************************************************************************************************
نظرة عامة شاملة أعلاه على قواعد مشغلات JavaScript هي كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.