المعامل in
في JavaScript
المعامل in
يُعيد القيمة true
إذا كانت الخاصية المُحدَّدة موجودةً في الكائن أو في سلسلة prototype الخاصة به.
البنية العامة
prop in object
prop
سلسلة نصية أو رمز يُمثِّل اسم الخاصية أو فهرس المصفوفة.
object
الكائن الذي سنتحقق من وجود الخاصية فيه أو في سلسلة prototype الخاصة به.
الوصف
يوضِّح المثال الآتي بعض حالات استخدام المعامل in
:
// المصفوفات
var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
0 in trees // true
3 in trees // true
6 in trees // false
// يجب تحديد الفهرس، وليس قيمة ذاك الفهرس
'bay' in trees // false
// خاصية للكائن Array
'length' in trees // true
Symbol.iterator in trees // true (ES2015+)
// الكائنات المُعرَّفة مسبقًا
'PI' in Math; // true
// كائنات خاصة
var mycar = {make: 'Honda', model: 'Accord', year: 1998};
'make' in mycar; // true
'model' in mycar; // true
من الضروري أن توفِّر كائنًا على الطرف الأيمن للمعامل in
، إذ يمكنك استخدام سلسلة نصية مُنشَأة عبر الدالة البانية String
، لكن لا يمكنك استخدام سلسلة نصية أوليّة:
var color1 = new String('green');
'length' in color1; // true
var color2 = 'coral';
'length' in color2; // TypeError
استخدام المعامل in
مع الخاصيات المحذوفة أو غير المُعرَّفة
إذا حذفتَ خاصية باستخدام المعامل delete
فسيُعيد المعامل in
القيمة false
لتلك الخاصية:
var mycar = {make: 'Honda', model: 'Accord', year: 1998};
delete mycar.make;
'make' in mycar; // false
var trees = new Array('redwood', 'bay', 'cedar', 'oak', 'maple');
delete trees[3];
3 in trees; // false
إذا ضبطتَ قيمة إحدى الخاصيات إلى undefined
لكنك لم تحذفها، فسيُعيد المعامل in
القيمة true
لتلك الخاصية:
var mycar = {make: 'Honda', model: 'Accord', year: 1998};
mycar.make = undefined;
'make' in mycar; // true
var trees = new Array('redwood', 'bay', 'cedar', 'oak', 'maple');
trees[3] = undefined;
3 in trees; // true
الخاصيات الموروثة
سيُعيد المعامل in
القيمة true
للخاصيات الموروثة عبر سلسلة prototype.
'toString' in {}; // true
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 3rd Edition.