انواع داده
متغیر را مثل جعبه با نام دیدید. سؤال بعدی این است: داخل جعبه چه جور چیزی نشسته؟ همان «جور» را نوع داده میگوییم. اینجا نقشهٔ مبتدی را میچینیم و با typeof از خودِ JavaScript میپرسیم نوع چیست.
انواع داده چیست و نوع را چطور میفهمید؟
نوع داده یعنی جنس مقداری که نام نگه میدارد — متن، عدد، درست/غلط، «هنوز چیزی نیست»، و بقیه. در این کورس اول با string، number، boolean، undefined و null آشنا میشوید. آبجکت و آرایه فقط بهصورت پیشنمایش میآیند؛ جزئیاتشان جلسهٔ جدا دارد. برای چک کردن، قبل از مقدار (یا نام متغیر) بنویسید typeof. جواب یک رشتهٔ کوتاه است مثل "string" یا "number".
نقشهٔ انواع برای تازهکار
📊 انواع مقداری که اول باید بشناسید
| جنس | نمونه مقدار | معمولاً typeof |
نکته برای مبتدی |
|---|---|---|---|
| رشته (متن) | "Hello" |
"string" |
متن داخل نقلقول — تکی یا دوتایی |
| عدد | 42 یا 3.5 |
"number" |
صحیح و اعشار اینجا یک نوعاند |
| Boolean | true / false |
"boolean" |
روشن/خاموش؛ بعداً برای شرط |
| Undefined | نامی بدون مقدار | "undefined" |
اعلان شده ولی هنوز مقدار نگرفته |
| Null | null |
"object" (عجیب) |
خالیِ عمدی؛ برچسب typeof گیجکننده است — quirk را حفظ کنید |
| آبجکت / آرایه (پیشنمایش) | { } / [1, 2] |
"object" |
چند مقدار با هم؛ جزئیات بعداً |
مقدار رشته
متن داخل نقلقول است. typeof میگوید "string".
let label = "JavaScript";
console.log(label);
console.log(typeof label);
مقدار عددی
هم عدد صحیح هم اعشار در سطح مبتدی یک نوع دارند: number. لازم نیست اینجا «نوع صحیح جدا» بسازید.
let score = 42;
console.log(score);
console.log(typeof score);
مقدار boolean
true و false نوع خودشان را دارند — بعداً برای شرط به کارتان میآید. اینها کلیدواژهاند، نه رشتهٔ "true".
let ready = true;
console.log(ready);
console.log(typeof ready);
undefined — هنوز خالی
اگر با let فقط نام را بسازید و مقدار ندهید، مقدار undefined است و typeof هم "undefined" برمیگرداند.
let pending;
console.log(pending);
console.log(typeof pending);
null — خالیِ عمدی
null یعنی «عمداً خالی گذاشتم.» نکتهٔ عجیب برای مبتدی: typeof null برابر "object" است — quirk قدیمی زبان. null را خالی بدانید و این برچسب را حفظ کنید تا گیج نشوید.
let empty = null;
console.log(empty);
console.log(typeof empty);
چند نوع را پشتسرهم چک کنید
هم خودِ مقدار را لاگ بگیرید هم نتیجهٔ typeof را. ببینید "10" (با نقلقول) رشته است و 10 عدد.
console.log(typeof "10");
console.log(typeof 10);
console.log(typeof false);
console.log(typeof undefined);
console.log(typeof null);
برچسب نوع را روی صفحه نشان دهید
یک مقدار بسازید، typeof را بخوانید، با textContent همان برچسب را روی صفحه بگذارید.
<!DOCTYPE html>
<html>
<head>
<title>Data Types — typeof on page</title>
</head>
<body>
<p id="out">…</p>
<script>
let sample = "W3Learn";
let kind = typeof sample;
document.getElementById("out").textContent = "Type: " + kind;
</script>
</body>
</html>
پاراگراف مینویسد Type: string چون داخل sample متن است. مقدار را به عدد یا true عوض کنید، صفحه را تازه کنید؛ برچسب عوض میشود.
خودتان تمرین کنید
- یک
letبا نام شهر داخل نقلقول بسازید؛ مقدار وtypeofرا لاگ کنید. - یک عدد بدون نقلقول بدهید؛
typeofباید"number"باشد. trueیاfalseبدهید؛ تأیید کنید نوع"boolean"است.let x;بدون مقدار؛typeof xرا ببینید.nullبدهید؛typeofرا ببینید و quirkِ"object"را یادداشت کنید.- در نمونهٔ HTML فقط
sampleرا عوض کنید، تازه کنید و برچسب صفحه را چک کنید.
اشتباههای رایج
- نوشتن
let n = "42";و انتظار جمع عددی — نقلقول آن را رشته میکند - وحشت از
typeof null === "object"— quirk است؛ هنوز وارد آبجکت عمیق نشدهاید - فکر کردن که واژههای
stringیاnumberرا باید مثل متغیر اعلان کنید - وقتی دو مقدار در کنسول شبیه هم به نظر میرسند ولی رفتارشان فرق دارد،
typeofرا فراموش کردن - قبل از جلسات بعدی غرق آرایه و آبجکت شدن — همین نقشه فعلاً کافی است
خلاصه
- نوع داده یعنی جنس مقداری که متغیر نگه میدارد
- نقشهٔ مبتدی: string، number، boolean، undefined، null (بهعلاوهٔ پیشنمایش کوتاه آبجکت/آرایه)
typeofبرچسب نوع را بهصورت رشته برمیگرداندtypeof nullبرابر"object"است — quirk را بهخاطر بسپارید- مرحلهٔ بعد اعداد است: کار دقیقتر با مقدارهای عددی
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود