تبدیل نوع
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 همه به رشته تبدیل میشوند و میتوانید بچسبانید یا نشان دهید.
console.log(String(42));
console.log(String(true));
console.log(String(null));
console.log(String(undefined));
console.log(typeof String(42));
Number() — عدد بسازید
وقتی متن باید برای حساب آماده شود، از Number(...) استفاده کنید. رشتهٔ رقمدار تمیز تبدیل میشود. متن غیرعددی میشود NaN.
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 را تبدیلِ شکستخورده بدانید، نه یک شمارشِ قابلاستفاده.
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 جلسهٔ بعد است — اینجا فقط همین کمککار را بلد باشید.
console.log(Boolean(1));
console.log(Boolean(0));
console.log(Boolean("hi"));
console.log(Boolean(""));
console.log(Boolean(null));
غافلگیری + — چسباندن در برابر جمع
اگر یک طرف + رشته باشد، JavaScript اغلب متن را به هم میچسباند، نه اینکه عدد جمع کند. وقتی منظورتان حساب است، اول با Number() تبدیل کنید.
console.log(5 + 2);
console.log(5 + "2");
console.log(Number("5") + Number("2"));
console.log("Score: " + 10);
تبدیلها را روی صفحه نشان دهید
چند مقدار را تبدیل کنید و با textContent برچسب کوتاه بنویسید.
<!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 است.
خودتان امتحان کنید
String(99)،String(false)وtypeof String(99)را لاگ کنید.Number("8")وNumber("8") + 2را لاگ کنید — باید حساب باشد، نه"82".Number("oops")وtypeofهمان نتیجه را لاگ کنید (NaN، هنوز"number").Boolean("")وBoolean("ok")را لاگ کنید.3 + "4"را لاگ کنید؛ بعد باNumber("3") + Number("4")بازنویسی کنید.- در دمو 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 رفتار میکنند
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود