في لغة JavaScript، الكائن `window` هو الكائن العام (global object) الذي يُمثل نافذة المتصفح. أي أن جميع الكائنات والمتغيرات والدوال الموجودة في JavaScript على صفحة الويب مُتاحة كخصائص للكائن `window`.

بمعنى آخر، إذا قمت بتعريف متغير أو دالة بشكل عام في JavaScript، فسيصبح تلقائيًا خاصية للكائن `window`. على سبيل المثال:

```javascript

let myVariable = "مرحباً بالعالم";

function myFunction() {

  console.log("هذه دالة.");

}

console.log(window.myVariable); // سيطبع "مرحباً بالعالم"

window.myFunction(); // سيطبع "هذه دالة."

في الواقع، يُمكنك حتى حذف `window.` في معظم الحالات، لأن JavaScript يفترضها ضمنيًا. أي أن `myVariable` تُعادل `window.myVariable`.

**أهم خصائص الكائن `window`:**

يحتوي الكائن `window` على العديد من الخصائص والكائنات الفرعية المهمة، من بينها:

*   **`document`:** يُمثل هذا الكائن نموذج كائن المستند (DOM)، وهو تمثيل هيكلي لصفحة HTML. يُمكنك استخدامه للوصول إلى عناصر HTML وتعديلها.

*   **`location`:** يحتوي على معلومات حول عنوان URL الحالي للصفحة، ويُمكن استخدامه لتغيير عنوان URL أو إعادة توجيه المستخدم.

*   **`history`:** يحتوي على سجل تصفح المستخدم، ويُمكن استخدامه للتنقل بين الصفحات السابقة واللاحقة.

*   **`navigator`:** يحتوي على معلومات حول متصفح المستخدم ونظام التشغيل.

*   **`screen`:** يحتوي على معلومات حول شاشة المستخدم.

*   **`console`:** يُستخدم لعرض رسائل في وحدة التحكم الخاصة بالمتصفح، وهو مفيد لتصحيح الأخطاء.

*   **`setTimeout()` و `setInterval()`:** تُستخدمان لتنفيذ دوال بعد فترة زمنية مُحددة أو بشكل مُتكرر.

*   **`alert()`، `confirm()`، و `prompt()`:** تُستخدم لعرض نوافذ منبثقة بسيطة للتفاعل مع المستخدم.

**شرح بعض الخصائص الهامة بالتفصيل:**

*   **`window.document`:**

*   يُمكن استخدامه للوصول إلى أي عنصر HTML في الصفحة باستخدام دوال مثل `getElementById()`، `getElementsByClassName()`، `querySelector()`، وغيرها.

    *   يُمكن استخدامه لتعديل محتوى العناصر، أنماطها، وخصائصها.

    مثال:

`javascript

    let myElement = document.getElementById("my-id");

    myElement.innerHTML = "محتوى جديد";

*   **`window.location`:**

    *   `window.location.href`: يُرجع عنوان URL الكامل للصفحة.

    *   `window.location.assign(url)`: يُعيد توجيه المستخدم إلى عنوان URL مُحدد.

    *   `window.location.reload()`: يُعيد تحميل الصفحة الحالية.

مثال:

```javascript

    console.log(location.href); // يطبع عنوان URL الحالي

    location.assign("https://www.example.com"); // يُعيد توجيه المستخدم

*   **`window.history`:**

*   `window.history.back()`: يُعيد المستخدم إلى الصفحة السابقة في سجل التصفح.

    *   `window.history.forward()`: يُعيد المستخدم إلى الصفحة التالية في سجل التصفح.

مثال:

    ```javascript

    history.back(); // الرجوع للخلف

*   **`window.setTimeout()`:**

*   يُنفذ دالة مرة واحدة بعد تأخير مُحدد بالمللي ثانية.

مثال:

```javascript

    setTimeout(function() {

      alert("تم التأخير 3 ثواني.");

    }, 3000); // 3000 مللي ثانية = 3 ثواني

*   **`window.setInterval()`:**

*   يُنفذ دالة بشكل مُتكرر كل فترة زمنية مُحددة بالمللي ثانية.

مثال:

`javascript

    setInterval(function() {

      console.log("يتم التنفيذ كل ثانية.");

    }, 1000); // 1000 مللي ثانية = 1 ثانية

    ```**باختصار:** الكائن `window` هو الكائن الأساسي في بيئة المتصفح لـ JavaScript، ويوفر الوصول إلى العديد من الخصائص والكائنات الهامة للتفاعل مع نافذة المتصفح، صفحة الويب، وسجل التصفح. فهمه ضروري لفهم كيفية عمل JavaScript في المتصفحات.