در حال بارگذاری...

شیء window

پیشخوان یک زنگ دارد. پاراگرافش #bell است و اول blank است. فرمی در کار نیست.
window شیء همین زبانه است. سند صفحه، عرض دید، و هر var که در اسکریپت ساده بسازی به آن چسبیده‌اند. let نمی‌چسبد. صفحه چهار چیز را می‌خواند و کنار هم می‌گذارد. خط می‌شود same / 4 / undefined / number.

این برگهٔ چای نیست

صفحهٔ قبل مهمان خالی و فنجان بیرون از ۱ تا ۳ را رد می‌کرد. خطش need guest / ok بود. اینجا نه #guest هست نه فیلد #cups. اسم cups این بار یک var است، نه جعبهٔ فرم.
سؤال عوض شده: از پشت window به چه چیزهایی می‌رسی؟

سند یکی است

document کپی دوم نیست. همان window.document است. زنگی که از window.document پیدا شود همان زنگی است که از document پیدا می‌شود.

همان سند

javascript
let bell = window.document.getElementById("bell");
let also = document.getElementById("bell");
bell.textContent = window.document === document ? "same" : "no";
console.log(bell.textContent);
console.log(bell === also);

خروجی اول same است و بعدی true. یک سند، یک زنگ.

var به پنجره می‌چسبد

var cups = 4 در همین اسکریپت window.cups را می‌سازد. خواندنش عدد ۴ است. String فقط برای نوشتن روی زنگ آن را متن می‌کند.

یک var را از window بخوان

javascript
var cups = 4;
let bell = document.getElementById("bell");
bell.textContent = String(window.cups);
console.log(bell.textContent);

خروجی 4 است. این ۴ متغیر است، نه فیلد فرم.

let روی پنجره نمی‌نشیند

let kettle = 1 وجود دارد. ویژگی window نیست. window.kettle برابر undefined است و String آن کلمهٔ undefined را می‌سازد.

let روی window نیست

javascript
let kettle = 1;
let bell = document.getElementById("bell");
bell.textContent = String(window.kettle);
console.log(bell.textContent);
console.log(kettle);

خروجی undefined است و بعدش 1. کتری هست. فقط به window آویزان نیست.

عرض، عدد است

window.innerWidth می‌گوید عرض دید چند پیکسل CSS است. typeof این مقدار "number" است. مثل value یک ورودی، متن نیست.

عرض عدد است

javascript
let bell = document.getElementById("bell");
bell.textContent = typeof window.innerWidth;
console.log(bell.textContent);

خروجی number است. تعداد پیکسل با اندازهٔ پنجره عوض می‌شود. نوعش عوض نمی‌شود.

نشانی را ننویس

window.location.href نشانی همین زبانه است و رشته است. خواندنش بی‌خطر است. اگر نشانی تازه‌ای در آن بگذاری، مرورگر از این صفحه می‌رود. هیچ‌کدام از قطعه‌ها در href چیزی نمی‌نویسند.

چهار خواندن، نه یک فرم

اینجا نامی تراشیده نمی‌شود و بازه‌ای چک نمی‌شود. چهار خواندن این‌هاست: سند یکی است یا نه، خود var، غیبت let، و نوع عرض. String(undefined) کلمهٔ undefined است، نه زنگ خالی.

خط زیر زنگ

اسکریپت ته body است. var cups = 4 و let kettle = 1 را می‌سازد، بعد چهار چیز را در یک فهرست می‌ریزد: یکی بودن سند، window.cups، window.kettle، و typeof window.innerWidth.

نمایش صفحه — زنگ پیشخوان

html
<!DOCTYPE html>
<html>
<head>
<title>shop-bell — page</title>
</head>
<body>
<p id="bell">blank</p>
<p id="line">…</p>
<script>
var cups = 4;
let kettle = 1;
let seen = [];
seen.push(window.document === document ? "same" : "no");
seen.push(String(window.cups));
seen.push(String(window.kettle));
seen.push(typeof window.innerWidth);
document.getElementById("line").textContent = seen.join(" / ");
</script>
</body>
</html>

خط same / 4 / undefined / number است. سند جور بود. var از روی window دیده شد. let دیده نشد. نوع عرض number است. کلمهٔ blank رفته. need guest / ok مال صفحهٔ قبلی است.

پشت پیشخوان

  1. window.document را با document بسنج. زنگ same را نشان می‌دهد.
  2. var cups = 4 را بساز و window.cups را بخوان. زنگ ۴ را نشان می‌دهد.
  3. let kettle = 1 را بساز و window.kettle را بخوان. زنگ undefined را نشان می‌دهد. خود kettle هنوز ۱ است.
  4. typeof window.innerWidth را بخوان. زنگ number را نشان می‌دهد.
  5. خط صفحه را بخوان: same / 4 / undefined / number.

اشتباه‌های پشت پیشخوان

زنگ یکی از همین کلمه‌ها را نشان می‌دهد، نه نام مهمان.

  • انتظار اینکه window.kettle برابر ۱ باشد
  • انتظار اینکه window.cups برابر undefined باشد
  • گرفتن innerWidth به‌جای متن
  • نوشتن در location.href و رفتن از این صفحه
  • خواندن خط به‌صورت need guest / ok

این را نگه دار

  • window.document و document یک شیء هستند
  • var cups = 4 از راه window.cups خوانده می‌شود
  • let kettle = 1 ویژگی window.kettle نمی‌سازد
  • typeof window.innerWidth برابر number است
  • خط صفحه same / 4 / undefined / number است

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
5
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود