أولاً ، نحتاج إلى فهم المفهوم الأصلي للقيمة
القيمة الأصلية
مقاطع بيانات بسيطة مخزنة في المكدس ، أي ، يتم تخزين قيمها مباشرة في الموقع الذي يتم فيه الوصول إلى المتغير.
القيمة المرجعية
الكائنات المخزنة في الكومة ، أي القيمة المخزنة في المتغير هي مؤشر يشير إلى الذاكرة حيث يتم تخزين الكائن
- تمت الرجوع إلى المفهوم في W3C
القيمة الأصلية ، لتكون بسيطة ، هي رقم سلسلة غير محددة لاغية
تحويل الكائنات إلى منطقية أمر بسيط نسبيًا
يتم تحويل جميع الكائنات (بما في ذلك المصفوفات والوظائف) إلى صواب ، وكائن التفاف هو أيضًا كائن ، ويتم تحويله أيضًا إلى صواب.
يقول الكتاب هذا: "الكائنات المؤقتة التي تم إنشاؤها عند الوصول إلى خصائص السلاسل والأرقام والملاءات التي تسمى كائنات التفاف." هذه هي الطريقة التي أفهمها. تعتبر السلسلة الجديدة والرقم والطغل كلها كائنات غلاف. فهي مختلفة عن الأشياء ، لكنها بالفعل كائنات. الفرق الرئيسي هو أنه لا يمكنهم تحديد سمات جديدة لكائنات الغلاف ، لأن سمات رقم السلسلة المنطقية هي للقراءة فقط.
تحويل الكائن إلى نوع السلسلة
إذا كان للكائن طريقة ToString () ، اتصل بالطريقة ToString (). إذا تم إرجاع قيمة بدائية ، فقم بتحويل القيمة الأصلية إلى سلسلة ، ويتم تحويل الكائن إلى هذه السلسلة. إذا لم تكن طريقة ToString () غير متوفرة أو أن القيمة التي يتم إرجاعها بواسطة هذه الطريقة ليست قيمة أصلية ، فاستدعاء طريقة ValueOF (). في نفس الروتين ، إذا كانت الإرجاع قيمة أصلية ، قم بتحويل القيمة الأصلية إلى سلسلة ، ويتم تحويل الكائن إلى هذه السلسلة. إذا لم تكن الإرجاع قيمة أصلية ، فسيتم طرح خطأ في تحويل النوع.
لن يتم وصف طريقة ToString () وطريقة ValueOF () هنا واحدًا تلو الآخر.
تحويل الكائن إلى نوع الرقم
بالمقارنة مع عملية التحويل إلى سلسلة وتحويل الرقم ، فهو عكس ذلك تمامًا. أولاً ، استدعاء طريقة valueof () ، ثم استدعاء طريقة ToString (). أخيرًا ، لا تُرجع طريقة ToString () القيمة الأصلية ، ويرمي JS خطأً.
عند استخدام مشغلي "==" و "+" للحسابات العددية أو الربط السلسلة ، إذا كان أحد الجانبين من المشغل هو كائن ، يتم تحويل كائن خاص إلى القيمة الأصلية. بالنسبة للكائنات غير المواعدة ، فإن تحويل الكائنات إلى قيم أصلية
يستدعي الكائن طريقة valueof () أولاً ، ثم طريقة ToString () ، وتحول القيمة الأصلية التي تم الحصول عليها مباشرة عن طريق استدعاء هاتين الطريقتين كقيمة أصلية في الكائن. للحصول على كائن Date ، اتصل أولاً بطريقة ToString () ، ثم اتصل بطريقة ValueOF.
لتحويل كائنات التاريخ إلى القيم الأصلية ، أعط مثالاً
var الآن = تاريخ جديد () ؛ typeof (الآن+1) ؛ // "سلسلة" يحول كائن التاريخ إلى سلسلة ، لأن طريقة toString () typeof (الآن 1) ؛ // "الرقم" يعكس مرونة JS ، "-" يحول السلسلة إلى رقم
الطريقة أعلاه لتحويل الكائنات إلى القيم الأصلية هي كل المحتوى الذي شاركته معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.