إنشاء Symbols فريدة
أنشئوا قيمًا مضمونة التفرد.
إنشاء Symbols فريدة درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 4 دروس في المجموع.
ما هو Symbol
إن Symbol نوع بدائي أُضيف إلى JavaScript الحديثة. وكل رمز فريد، حتى إذا اشترك رمزان في الوصف نفسه.
const s = Symbol()
console.log(typeof s)إنشاء Symbol
تنشئون رمزًا باستدعاء دالة Symbol. وهي ليست مُنشئًا، لذلك لا تستخدمون معها new مطلقًا.
const id = Symbol()
console.log(typeof id)وصف اختياري
يمكنكم تمرير سلسلة وصف للمساعدة في تصحيح الأخطاء. والوصف معلوماتي بحت ولا يؤثر في التفرد.
const id = Symbol("user id")
console.log(id.description)كل Symbol فريد
لا يتساوى رمزان أبدًا، حتى مع تطابق الوصفين. وهذا التفرد المضمون هو السمة المميزة لهما.
const a = Symbol("x")
const b = Symbol("x")
console.log(a === b)لا تستخدموا الكلمة المفتاحية New
يؤدي استدعاء Symbol مع new إلى إطلاق خطأ، لأن الرموز قيم بدائية وليست كائنات. استدعوه دائمًا بوصفه دالة عادية.
const s = Symbol("ok")
console.log(typeof s === "symbol")الرموز قيم بدائية
قيمة typeof للرمز هي السلسلة symbol. وكغيرها من القيم البدائية، فالرموز غير قابلة للتغيير ولا تملك خصائص يمكن تغييرها.
const s = Symbol("p")
console.log(typeof s)قراءة الوصف
تعيد الخاصية description النص الذي قدمتموه، أو undefined إذا لم تقدموا وصفًا. وهي للقراءة فقط.
const named = Symbol("hello")
const anon = Symbol()
console.log(named.description)
console.log(anon.description)لا يمكن تحويل الرموز قسرًا إلى سلاسل نصية
لا تتحول الرموز ضمنيًا إلى سلاسل نصية، مما يمنع إساءة استخدامها عن طريق الخطأ. استخدم String أو toString للحصول على نص بطريقة مقصودة.
const s = Symbol("tag")
console.log(String(s))
console.log(s.toString())استخدام الرموز كثوابت
تُعدّ الرموز قيمًا ثابتة فريدة ممتازة، مثلًا لتمثيل حالات متميزة لا يمكن أن تتصادم مطلقًا.
const RED = Symbol("red")
const GREEN = Symbol("green")
console.log(RED === GREEN)تخزين الرموز
يمكنك تخزين الرموز في المتغيرات والمصفوفات، وكذلك كقيم داخل الكائنات. وتبقى صفة التفرد ملازمة لها.
const states = [Symbol("on"), Symbol("off")]
console.log(states.length)
console.log(states[0] === states[1])أهمية التفرد
بما أن أي رمزين لا يتصادمان، فهما مثاليان للمفاتيح التي يجب ألا تتعارض مطلقًا مع أي كود آخر، وهذا ما سنستكشفه في الدرس التالي.
const key1 = Symbol("meta")
const key2 = Symbol("meta")
const obj = {}
obj[key1] = "a"
obj[key2] = "b"
console.log(obj[key1], obj[key2])اختبار سريع
اختبر معرفتك بإنشاء الرموز.
مراجعة
مراجعة: الرموز قيم أولية فريدة.
- يتم إنشاؤها باستدعاء Symbol، وليس باستخدام new مطلقًا
- الوصف الاختياري يساعد في تصحيح الأخطاء فقط
- كل رمز فريد
- قيمة typeof للرمز هي symbol
const a = Symbol("x")
const b = Symbol("x")
console.log(a === b)الأسئلة الشائعة
هل درس «إنشاء Symbols فريدة» مجاني؟
نعم — نص درس «إنشاء Symbols فريدة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 4 دروس في المجموع.
ماذا ستتعلم في «إنشاء Symbols فريدة»؟
أنشئوا قيمًا مضمونة التفرد. تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «إنشاء Symbols فريدة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء Symbols فريدة
- استخدام Symbols كمفاتيح للكائنات
- السجل العام لـ Symbol
- الرموز المعروفة جيدًا