یک عملگر رابطهای، عملوندهای خود را با هم مقایسه میکند و بر اساس اینکه نتیجهی این مقایسه درست است یا نه، یک مقدار بولین (true یا false) برمیگرداند.
in)عملگر in اگر ویژگی (Property) مشخصشده در شیء مورد نظر وجود داشته باشد، مقدار true را برمیگرداند. ساختار نوشتن آن به این صورت است:
propNameOrNumber in objectName
در این ساختار، propNameOrNumber یک عبارت رشتهای، عددی یا نماد (Symbol) است که نام یک ویژگی یا ایندکس یک آرایه را نشان میدهد، و objectName نیز نام شیء مورد نظر است.
مثالهای زیر چند نمونه از کاربردهای عملگر in را نشان میدهند:
// کار با آرایهها
const trees = ["redwood", "bay", "cedar", "oak", "maple"];
0 in trees; // مقدار true برمیگرداند
3 in trees; // مقدار true برمیگرداند
6 in trees; // مقدار false برمیگرداند
"bay" in trees; // مقدار false برمیگرداند
// (نکته: شما باید شماره ایندکس را مشخص کنید، نه مقدارِ ذخیرهشده در آن ایندکس را)
"length" in trees; // مقدار true برمیگرداند (چون length یکی از ویژگیهای خود آرایه است)
// اشیاء پیشفرض جاوااسکریپت
"PI" in Math; // مقدار true برمیگرداند
const myString = new String("coral");
"length" in myString; // مقدار true برمیگرداند
// اشیاء سفارشی (تعریفشده توسط کاربر)
const myCar = { make: "Honda", model: "Accord", year: 1998 };
"make" in myCar; // مقدار true برمیگرداند
"model" in myCar; // مقدار true برمیگرداند
instanceof)عملگر instanceof اگر شیء مشخصشده از نوعِ شیءِ (Object type) نامبرده شده باشد، مقدار true برمیگرداند. ساختار نوشتن آن به این صورت است:
object instanceof objectType
در این ساختار، object همان شیئی است که میخواهید آن را بررسی کنید و objectType یک تابع سازنده (Constructor) است که یک نوع خاص (مثل Map یا Array) را نمایندگی میکند.
زمانی که نیاز دارید نوع یک شیء را در زمان اجرای برنامه (Runtime) تایید کنید، از instanceof استفاده کنید؛ به عنوان مثال، هنگام مدیریت و گرفتن خطاها (Catching exceptions)، میتوانید بر اساس نوع خطایی که رخ داده است، مسیر کدهای مدیریت خطا را به بخشهای مختلفی هدایت کنید.
برای نمونه، کد زیر از عملگر instanceof استفاده میکند تا ببیند آیا obj یک شیء از نوع Map هست یا نه. از آنجا که obj یک شیء Map است، دستورات داخل بلوک if اجرا میشوند:
const obj = new Map();
if (obj instanceof Map) {
// دستوراتی که در صورت درست بودن شرط اجرا میشوند
}
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://developer.mozilla.org/en-US/docs/Web/JavaScript