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

خروجی گرفتن

اسکریپت را بلدید روی صفحه بگذارید. مهارت بعدی این است که نتیجه را کجا نشان بدهید: روی خود صفحه برای بازدیدکننده، در یک پنجره که باید ببندد، یا فقط در Console برای خودتان. یک زبان است؛ چهار جای خیلی متفاوت.

نتیجهٔ JavaScript را چطور نشان بدهیم؟

برای بازدیدکننده، یک عنصر موجود را عوض کنید. متن ساده را با textContent بگذارید. innerHTML را فقط وقتی واقعاً باید تگ بگذارید. پیام مسدودکننده با window.alert. برای دیباگ خودتان console.log. document.write مال دوران قدیمی‌تر است: وقتی فایل هنوز خوانده می‌شود گاهی کار می‌کند؛ بعد از بار شدن صفحه ممکن است کل سند را پاک کند.

نتیجه کجا دیده می‌شود؟

📊 جاهای رایج برای دیدن نتیجه

روش چه کسی می‌بیند پیش‌فرض مبتدی
textContent روی یک عنصر بازدیدکننده، روی صفحه بله — خروجی روزمره
innerHTML روی یک عنصر بازدیدکننده، با تگ HTML فقط وقتی نشانه‌گذاری مال خودتان است
window.alert بازدیدکننده، در پنجره کم — صفحه تا OK می‌ایستد
console.log شما، در Console ابزار توسعه‌دهنده بله برای دیباگ؛ بازدیدکننده نمی‌بیند
document.write جریان HTML بعد از بار شدن صفحه استفاده نکنید

روی صفحه (پیش‌فرض برای بازدیدکننده)

تیتر یا پاراگراف واقعی را در HTML بگذارید. وقتی اسکریپت اجرا شد (انتهای body، مثل جلسهٔ قبل)، همان گره را عوض کنید. بازدیدکننده متن تازه را می‌بیند؛ لازم نیست DevTools باز کند.

متن دیدنی با textContent

html
<!DOCTYPE html>
<html>
<head>
<title>Output — Page</title>
</head>
<body>
<h1 id="msg">Waiting…</h1>
<script>
document.getElementById("msg").textContent =
"Hello from JavaScript";
</script>
</body>
</html>

چرا اول textContent

  • اگر اسکریپت خطا بدهد، همان «Waiting…» هنوز در HTML هست
  • گیومه و < در رشته متن می‌مانند، تگ نمی‌شوند
  • همین الگو را وقتی اسکریپت را انتهای body گذاشتید دیدید
  • ماژول DOM بعداً عمیق‌تر می‌شود؛ اینجا فقط «نتیجه را اینجا بگذار»

innerHTML — وقتی نتیجه خودش نشانه‌گذاری است

innerHTML رشته را مثل HTML می‌خواند. وقتی عمداً تگ‌هایی می‌گذارید که خودتان نوشته‌اید، به کار می‌آید. متن خام کاربر را داخل innerHTML نریزید — ممکن است نشانه‌گذاری ناخواسته اجرا شود. برای اسم یا قیمت، همان textContent کافی است.

گذاشتن نشانه‌گذاری با innerHTML

html
<!DOCTYPE html>
<html>
<head>
<title>Output — innerHTML</title>
</head>
<body>
<p id="box">Empty</p>
<script>
document.getElementById("box").innerHTML =
"<strong>Ready</strong> — markup inside the paragraph";
</script>
</body>
</html>

document.write — بشناسید؛ کمتر استفاده کنید

document.write متن را همان موقع که مرورگر فایل را می‌خواند داخل جریان HTML می‌فرستد. اگر بعد از تمام شدن بار صفحه صدا بزنید (مثلاً کلیک دیرهنگام روی دکمه)، خیلی از مرورگرها جریان تازه باز می‌کنند و صفحه خالی می‌شود. برای به‌روزرسانی، عنصر را عوض کنید؛ به این روش عادت نکنید.

document.write ممکن است صفحهٔ بارشده را پاک کند

html
<!DOCTYPE html>
<html>
<head>
<title>Output — write</title>
</head>
<body>
<p>This paragraph exists first.</p>
<button type="button" id="wipe">Call document.write after load</button>
<script>
document.getElementById("wipe").onclick = function () {
document.write("The previous page content is gone");
};
</script>
</body>
</html>

این دمو را باز کنید، دکمه را بزنید و ببینید پاراگراف اول می‌رود. برای همین در بقیهٔ این کورس برای مثال‌های بعدی از document.write استفاده نمی‌کنیم.

alert — پنجره‌ای که صفحه را نگه می‌دارد

window.alert (معمولاً همان alert) یک پنجرهٔ سیستم باز می‌کند. صفحه صبر می‌کند تا بازدیدکننده OK بزند. یک بار برای اثبات اجرا شدن اسکریپت بد نیست. به‌عنوان تنها «رابط کاربری» ضعیف است: استایل نمی‌گیرد، پشت‌سرهم آزار می‌دهد، و کار صفحه‌خوان و کیبورد را قطع می‌کند. پیام واقعی را روی صفحه بنویسید.

یک alert یک‌باره

html
<!DOCTYPE html>
<html>
<head>
<title>Output — Alert</title>
</head>
<body>
<p>The page pauses until you dismiss the dialog.</p>
<script>
alert("Script ran — click OK to continue");
</script>
</body>
</html>

console.log — برای شما، نه برای بازدیدکننده

Console ابزار برنامه‌نویس است. console.log مقدار را آنجا چاپ می‌کند. مشتری روی موبایل اصلاً آن را نمی‌بیند. وقتی دارید یاد می‌گیرید عدد یا رشته را چک کنید، خوب است. لاگ موفق یعنی «برنامه نتیجه را نشان داد» نیست.

لاگ فقط برای برنامه‌نویس

javascript
console.log("Visible in DevTools, not on the page");
console.log(2 + 2);

DevTools را باز کنید (اغلب F12)، تب Console را بزنید، صفحه را تازه کنید و خط‌ها را بخوانید. اگر فقط console.log را عوض کنید و تیتر همان «Waiting…» بماند، بازدیدکننده هم همان «Waiting…» را می‌بیند.

خودتان امتحان کنید

  1. صفحهٔ textContent را ذخیره کنید، باز کنید، رشته را عوض کنید و تازه کنید.
  2. همان خط را به innerHTML با تگ <strong> عوض کنید و ببینید کلمه پررنگ می‌شود.
  3. Console را باز کنید و مثال console.log را اجرا کنید — در بدنهٔ صفحه چیز تازه‌ای نباید بیاید.
  4. یک بار مثال alert را بزنید؛ بعد alert را بردارید و همان پیام را روی تیتر بگذارید تا صفحه نایستد.
  5. اختیاری: دموی دکمهٔ document.write را بزنید تا حس پاک شدن صفحه را بگیرید — بعد این الگو را از فایل‌های خودتان حذف کنید.

اشتباهات رایج

  • نتیجه را فقط با console.log نشان دادن و تعجب که چرا کاربر صفحهٔ خالی می‌بیند
  • ریختن متنی که خودتان ننوشته‌اید (فرم، آدرس، چت) داخل innerHTML به‌جای textContent
  • صدا زدن document.write بعد از بار صفحه و از دست رفتن کل چیدمان
  • alert پشت هر کلید
  • قاطی کردن با جلسهٔ «کجا بگذاریم»: آنجا جای زندگی اسکریپت است؛ اینجا جای دیده شدن نتیجه

خلاصه

  • پیش‌فرض دیدنی برای بازدیدکننده: عنصر را با textContent عوض کنید
  • innerHTML نشانه‌گذاریِ خودتان را می‌گذارد — رشتهٔ غریبه را نه
  • alert صفحه را قفل می‌کند؛ کم استفاده کنید
  • console.log برای برنامه‌نویس در DevTools است
  • بعد از بار شدن صفحه سراغ document.write نروید؛ ممکن است سند را پاک کند
  • تمرین کنید همان پیام را از Console به alert و بعد به تیتر ببرید

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

آماده شروع

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

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

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

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

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