اليوم رأيت قطعة من ضاغط Yui مضغوط كود JS:
usernum && (ind += index ، ind> = usernum && (ind -= usernum) ، ind <0 && (ind === -2 && (ind = -1) ، ind += usernum) ، selli.removeclass ("on") ، $ (selli [ind]). addClass ("on") ؛
لقد شعرت بالجنون ، وربما يمكن أن يفهم قلة من الناس ذلك مرة واحدة. ثم "ترجمة" له.
&& (اللوجستية و)
هنا بشكل أساسي عملية "&&". بادئ ذي بدء ، تحتاج إلى فهم هذا ورؤية مثال بسيط:
1 var a = 1 && 2 && 3 ؛ // 3
2 var b = 0 && 1 && 2 ؛ // 0
3 var c = 1 && 0 && 2 ؛ // 0
4 تنبيه (أ) ، تنبيه (ب) ، تنبيه (ج) ؛
Hehe ، طريقة الكتابة غريبة للغاية ، نتيجة الجري هي 3 ، 0 ، 0. عمومًا نستخدمها في كثير من الأحيان في عبارات. العملية "&&" (منطقية و) هي في الحقيقة عكس "||" عملية. تعود عملية "&&" عندما تواجه خطأ.
على سبيل المثال: A && B ، إذا كان A صحيحًا ، فأعود بشكل مباشر B ، بغض النظر عما إذا كان B صحيحًا أم خطأ. إذا كانت A خاطئة ، فأعود مباشرة. في المثال أعلاه ، أول var a = 1 && 2 && 3 ؛ لأن 1 && 2 ، 1 صحيح ، إرجاع 2 ؛ 2 && 3 ، 2 صحيح ، العودة 3.
بعد فهم عملية "&&" ، ثم انظر إلى رمز JS المضغوط ضاغط Yui في السطح العلوي ، وترجمته:
if (usernum) {ind += index ؛ if (ind> = usernum) {ind- = usernum ؛} if (ind <0) {if (ind === -2) {ind = -1 ؛} ind += usernum ؛} selli.removeclass ("on") ؛ $ (ind]). }لكي أخجل ، أنا كبير في السن وأعمل "ترجمة" لمدة نصف ساعة ، ولكن بمساعدة زملائي فقط أن "الترجمة" صحيحة.
|| (منطقي أو)
لنلقي نظرة على "||" (منطقي أو) التشغيل ، وشاهد المثال:
1 var a = 0 || 1 || 2 ؛ // 1
2 var b = 1 || 0 || 3 ؛ // 1
3 تنبيه (أ) ، تنبيه (ب) ؛
"||" تعود العملية عندما تواجه صحيحًا. على سبيل المثال: أ || B ، إذا كان A خطأ ، أو العودة مباشرة ب ، بغض النظر عما إذا كان B صحيحًا أم خطأ. إذا كان A صحيحًا ، فسوف يعود مباشرة ولن يستمر في التنفيذ.
&& (منطقي و) و || (منطقي أو) يجب الانتباه إلى أولويتهم:
&& (المنطق و) الأولوية أعلى من || (المنطق أو)
إرجاع A && B || ج ،
يمكننا الحكم على قيمة الإرجاع بناءً على أ. إذا كانت A خاطئة ، فسيعود بالتأكيد C ؛ إذا كان كل من B و C صحيحين ، فيمكننا أن نقرر ما إذا كان B أو C بناءً على A. إذا كانت A خاطئة ، فسيعود ج. إذا كان A صحيحًا ، فسوف يعود ب.
إرجاع A || b && c
وفقًا للأولوية ، يتم حساب B && C أولاً ، ثم A IS أو مع A ؛ إذا كان A صحيحًا ، فإنه يعيد A ، سواء كان B أو C ، إذا كان A خطأ ، فإذا كان B خطأ ، فإنه يعود B ، وإذا كان B صحيحًا ، فإنه يعود C ؛
1 var a = 3 && 0 || 2 ؛ // 2
3 var b = 3 || 0 && 2 ؛ // 3
5 var c = 0 || 2 && 3 ؛ // 3
6 تنبيه (أ) ، تنبيه (ب) ، تنبيه (ج) ؛
مرفق أيضًا: أولوية مشغل JS (مدرجة من عالية إلى منخفضة)
| المشغلين | يصف |
| . [] () | الوصول إلى الميدان ، وصفاي فرعية ، ومكالمات الوظائف ، وتجميع التعبير |
| ++ - - ~! حذف نوع جديد من الفراغ | مشغل Unary ، نوع بيانات الإرجاع ، إنشاء الكائن ، القيمة غير المحددة |
| */ ٪ | الضرب ، التقسيم ، استخراج العفن |
| + - + | إضافة ، الطرح ، سلسلة متسلسل |
| << >> >>>> | يحول |
| <<= >> = مثيل | أقل من ، أقل من أو يساوي ، أكبر من ، أكبر من أو تساوي ، مثيل |
| ==! = ===! == | متساوٍ ، لا يساوي ، متساوٍ تمامًا ، وليس متساوٍ تمامًا |
| & & | bitwise و |
| ^ | bitwise xor |
| | | bitwise أو |
| && | المنطق و |
| || | منطقي أو |
| ؟: | حالة |
| = OP = | المهمة ، المهمة التشغيلية |
| و | تقييم متعدد |
يناقش المقال أعلاه باختصار مشغلي JS && || وأولوياتهم هي كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.