دلالة يتم استخدامه عمومًا لإلقاء التعبير التالي في بيانات منطقية (منطقية) ، أي أنه يمكن أن يكون صحيحًا أو خطأ ؛
كثيرا ما أرى أمثلة مثل هذا:
نسخة الكود كما يلي:
var a ؛
var b = !! a ؛
A غير محدد بشكل افتراضي. ! A صحيح ، !! A خاطئ ، وبالتالي فإن قيمة B خاطئة ، ولم تعد غير محددة ، ولا قيم أخرى ، والتي توفر بشكل أساسي الراحة للحكم اللاحق.
دلالة يتم استخدامه عمومًا لإلقاء التعبير التالي في بيانات منطقية (منطقية) ، أي أنه يمكن أن يكون صحيحًا أو خطأ ؛
نظرًا لأن JavaScript هي لغة ضعيفة من النوع (لا تحتوي المتغيرات على أنواع بيانات ثابتة) ، فإنها تحتاج أحيانًا إلى إلقاءها على النوع المقابل ، مثل:
a = parseint ("1234") a = "1234" -0 // تحويل إلى الرقم B = 1234+"// تحويل إلى سلسلة c = someObject.toString () // تحويل الكائن إلى سلسلةمن بينها ، الأول والرابع من التحويلات الصريحة ، والتحويلات الضمنية 2 و 3
تحويل منطقية ، قواعد اتفاقية JavaScript
كاذبة ، غير محددة ، لاغية ، 0 ، "" كاذبة
صحيح ، 1 ، "شيء ما" ، [كائن] صحيح
للقيم الأخرى التي تم تحويلها ضمنيًا مثل فارغة وغير محددة ،! سوف ينتج المشغل نتائج حقيقية ، وبالتالي فإن الغرض من استخدام علامتي تعجبه هو تحويل هذه القيم إلى قيم منطقية "مكافئة" ؛
لنلقي نظرة مرة أخرى:
فار فو التنبيه (! foo) ؛ // غير محدد ، تعبر علامة التعجب بشكل صحيح ؛ التنبيه (! goo) ؛ // في Null ، تعبر علامة التعجب بشكل صحيح ؛ var o = {flag: true} ؛ var test = !! تنبيه (اختبار) ؛يوضح هذا المثال أنه عندما يكون عودة علامة تعجب واحدة ، وإعادة عودة بشقتين تعجبات خاطئة ، وبالتالي فإن وظيفة علامة التعجب اثنين هي أنه إذا تم تعيين قيمة المتغير بوضوح (غير نار/غير محدد/0/"و" القيم المكافئة) ، فسيتم إرجاع النتيجة على أساس القيمة الفعلية للمتغير. إذا لم يتم تعيينه ، فسيتم إرجاع النتيجة.