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

تبدیل نوع

null و undefined را از هم جدا کردید. مهارت بعدی این است که عمداً جورِ مقدار را عوض کنید — مثلاً عدد را برای برچسب به متن تبدیل کنید، یا متن را برای حساب به عدد. به این کار تبدیل نوع می‌گوییم. اینجا سراغ سه کمک‌کار روشن می‌رویم: String()، Number() و Boolean() — به‌علاوه یک غافلگیری رایج با +.

تبدیل نوع در JavaScript چیست؟

تبدیل نوع یعنی مقدار را از یک جور به جور دیگر ببرید. بهتر است عمدی و واضح باشد: String(42) می‌شود "42"، Number("7") می‌شود 7، Boolean(0) می‌شود false. اگر Number متن را نفهمد، نتیجه NaN است. با + اگر یک طرف رشته باشد، اغلب به‌جای جمع، متن را می‌چسباند — یک‌بار لاگ کنید تا جا بیفتد.

جعبهٔ ابزار تبدیل نوع

📊 تبدیل نوع برای شروع

ابزار / ایده نمونه نتیجه / نکته
String(...) String(42) "42" (متن)
Number(...) Number("7") 7 (عدد)
Boolean(...) Boolean(0) false (پیش‌نمایش falsy)
متنِ غیرعددی Number("hello") NaN — typeof هنوز "number"
خالی → بولی Boolean("") false
مخلوط با + 5 + "2" "52" (الحاق، نه ۷)

String() — متن بسازید

وقتی برچسب یا پیام می‌خواهید، مقدار را داخل String(...) بگذارید. عدد، بولی، null و undefined همه به رشته تبدیل می‌شوند و می‌توانید بچسبانید یا نشان دهید.

تبدیل با String()

javascript
console.log(String(42));
console.log(String(true));
console.log(String(null));
console.log(String(undefined));
console.log(typeof String(42));

Number() — عدد بسازید

وقتی متن باید برای حساب آماده شود، از Number(...) استفاده کنید. رشتهٔ رقم‌دار تمیز تبدیل می‌شود. متن غیرعددی می‌شود NaN.

تبدیل با Number()

javascript
console.log(Number("7"));
console.log(Number("3.5"));
console.log(Number(true));
console.log(Number(false));
console.log(typeof Number("7"));

وقتی Number شکست می‌خورد — NaN

Number("hello") می‌شود NaN (Not a Number). نکتهٔ جلسهٔ اعداد: typeof NaN هنوز "number" است. NaN را تبدیلِ شکست‌خورده بدانید، نه یک شمارشِ قابل‌استفاده.

دام Number و NaN

javascript
console.log(Number("hello"));
console.log(typeof Number("hello"));
console.log(Number(""));
console.log(Number(null));

Number("") و Number(null) می‌شوند 0 — دام دیگری برای تازه‌کار. وقتی منظورتان مقدار واقعی است، رشتهٔ رقم‌دارِ روشن بدهید.

Boolean() — از مقدار، بله/خیر بگیرید

Boolean(...) مقدار را به true یا false تبدیل می‌کند. چیزهای خالی مثل 0، ""، null، undefined و NaN می‌شوند false. رشتهٔ غیرخالی و بیشتر عددها true می‌شوند. فهرست کامل truthy / falsy جلسهٔ بعد است — اینجا فقط همین کمک‌کار را بلد باشید.

تبدیل با Boolean()

javascript
console.log(Boolean(1));
console.log(Boolean(0));
console.log(Boolean("hi"));
console.log(Boolean(""));
console.log(Boolean(null));

غافلگیری + — چسباندن در برابر جمع

اگر یک طرف + رشته باشد، JavaScript اغلب متن را به هم می‌چسباند، نه اینکه عدد جمع کند. وقتی منظورتان حساب است، اول با Number() تبدیل کنید.

علامت + گاهی الحاق می‌کند

javascript
console.log(5 + 2);
console.log(5 + "2");
console.log(Number("5") + Number("2"));
console.log("Score: " + 10);

تبدیل‌ها را روی صفحه نشان دهید

چند مقدار را تبدیل کنید و با textContent برچسب کوتاه بنویسید.

برچسب صفحه بعد از تبدیل نوع

html
<!DOCTYPE html>
<html>
<head>
<title>Type conversion — labels</title>
</head>
<body>
<p id="out">…</p>
<script>
let raw = "12";
let asNumber = Number(raw);
let asText = String(asNumber);
let flag = Boolean(asNumber);
document.getElementById("out").textContent =
"raw=" + raw +
" | number=" + asNumber +
" | text=" + asText +
" | flag=" + flag;
</script>
</body>
</html>

پاراگراف همان ایده را در سه جور نشان می‌دهد. raw را "0" کنید، صفحه را تازه کنید و ببینید flag می‌شود false در حالی که عدد همان 0 است.

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

  1. String(99)، String(false) و typeof String(99) را لاگ کنید.
  2. Number("8") و Number("8") + 2 را لاگ کنید — باید حساب باشد، نه "82".
  3. Number("oops") و typeof همان نتیجه را لاگ کنید (NaN، هنوز "number").
  4. Boolean("") و Boolean("ok") را لاگ کنید.
  5. 3 + "4" را لاگ کنید؛ بعد با Number("3") + Number("4") بازنویسی کنید.
  6. در دمو HTML مقدار raw را "0" کنید، تازه کنید و flag جدید را بخوانید.

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

  • فرض اینکه + همیشه جمع می‌کند — اگر یک طرف رشته باشد ممکن است الحاق شود
  • نادیده گرفتن NaN بعد از Number("hello") و استفاده از آن در حساب
  • فکر کردن که این جلسه جای truthy / falsy را می‌گیرد — Boolean() فقط پیش‌نمایش است
  • انتظار اینکه String(null) برابر "" باشد — متن "null" است
  • فراموش کردن چک typeof وقتی نتیجه عجیب به نظر می‌رسد

خلاصه

  • تبدیل نوع: عمداً جورِ مقدار را عوض کردن
  • برای وضوح String()، Number() و Boolean() را ترجیح بدهید
  • متن غیرعددی → NaN؛ typeof NaN هنوز "number" است
  • + با رشته اغلب الحاق می‌کند — قبل از جمع، تبدیل کنید
  • بعدی: truthy و falsy — کدام مقدارها در شرط مثل true یا false رفتار می‌کنند

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

آماده شروع

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

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

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

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

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