Display Objects

وقتی در جاوااسکریپت یک شیء (Object) ایجاد می‌کنیم، نمایش مستقیم آن در خروجی همیشه ساده نیست. چون شیء ممکن است شامل چندین property یا حتی تو در تو باشد.
روش‌های مختلفی برای نمایش اشیاء وجود دارد:

1️⃣ نمایش مستقیم شیء

اگر یک شیء را مستقیماً در ()console.log یا ()alert نمایش دهیم:

const person = { name: "Ali", age: 30 }; console.log(person); alert(person);

🔹 در ()console.log مقدار کامل شیء نمایش داده می‌شود.
🔹 در ()alert فقط [object Object] دیده می‌شود (نه جزئیات شیء).

2️⃣ نمایش مقدار یک Property

برای نمایش یک ویژگی خاص از شیء:

const person = { name: "Ali", age: 30 }; console.log(person.name); // "Ali" console.log(person.age); // 30

3️⃣ پیمایش (Loop) روی شیء

با استفاده از حلقه for...in می‌توانیم همه propertyهای شیء را نمایش دهیم:

const person = { name: "Ali", age: 30, city: "Tehran" }; for (let key in person) { console.log(key + ": " + person[key]); } // خروجی: // name: Ali // age: 30 // city: Tehran

4️⃣ استفاده از ()Object.values و ()Object.keys

برای گرفتن کلیدها یا مقادیر:

const person = { name: "Ali", age: 30 }; console.log(Object.keys(person)); // ["name", "age"] console.log(Object.values(person)); // ["Ali", 30]

5️⃣ استفاده از ()JSON.stringify

روش استاندارد برای نمایش یا ذخیره‌سازی اشیاء به صورت متن (string).

const person = { name: "Ali", age: 30, city: "Tehran" }; console.log(JSON.stringify(person)); // {"name":"Ali","age":30,"city":"Tehran"}

🔹 این روش برای ارسال شیء به سرور یا ذخیره در دیتابیس بسیار کاربردی است.

6️⃣ نمایش اشیاء تو در تو

برای اشیاء چند سطحی، ()JSON.stringify بهترین گزینه است.

const person = { name: "Ali", age: 30, cars: { car1: "BMW", car2: "Benz" } }; console.log(JSON.stringify(person)); // {"name":"Ali","age":30,"cars":{"car1":"BMW","car2":"Benz"}}

7️⃣ زیباسازی خروجی (Pretty Print)

با پارامترهای اضافه در JSON.stringify می‌توانیم خروجی را خواناتر کنیم:

const person = { name: "Ali", age: 30, city: "Tehran" }; console.log(JSON.stringify(person, null, 2));

🔹 خروجی با فاصله و خط جدید نمایش داده می‌شود.

📑 جدول خلاصه

روشمثالتوضیح
نمایش مستقیمconsole.log(obj)در console کامل نمایش داده می‌شود
نمایش Property خاصobj.nameنمایش یک ویژگی خاص
پیمایش با for...infor (let k in obj) {...}نمایش همه کلیدها و مقادیر
Object.keys() / values()Object.keys(obj)گرفتن کلیدها یا مقادیر به صورت آرایه
JSON.stringify()JSON.stringify(obj)تبدیل به رشته متنی JSON
زیباسازی خروجیJSON.stringify(obj, null, 2)نمایش با فرمت مرتب و قابل خواندن