متغیرها و انواع دادهها در جاوا اسکریپت
در جاوا اسکریپت، متغیرها برای ذخیره مقادیر استفاده میشوند. این مقادیر میتوانند از انواع مختلف دادهای باشند که هرکدام ویژگیهای خاص خود را دارند. در این بخش، به انواع دادهها و نحوه استفاده از متغیرها در جاوا اسکریپت پرداخته میشود.
۱. تعریف متغیرها در جاوا اسکریپت
در جاوا اسکریپت، برای تعریف متغیر از یکی از سه کلمه کلیدی var، let و const استفاده میشود. هرکدام از اینها کاربرد خاص خود را دارند:
- var: قدیمیترین روش برای تعریف متغیر است و میتواند در سراسر بلوک کد و حتی خارج از بلوکها قابل دسترسی باشد. از آن کمتر استفاده میشود.
- let: برای تعریف متغیرهایی که میتوانند تغییر کنند. این روش دارای محدوده بلوک است، یعنی تنها در بلوکی که در آن تعریف شده قابل دسترسی است.
- const: برای تعریف متغیرهایی که مقدار آنها ثابت است و نمیتوان آن را تغییر داد. این متغیرها باید در هنگام تعریف مقداردهی شوند.
مثال:
let y = 20; // متغیر با let
const z = 30; // متغیر ثابت با const
۲. انواع دادهها در جاوا اسکریپت
جاوا اسکریپت از انواع دادهای مختلف پشتیبانی میکند که به دو دسته کلی تقسیم میشود:
۲.۱. انواع دادههای اولیه (Primitive Data Types)
این انواع داده، مقادیر ساده و غیرقابل تغییر (immutable) هستند. زمانی که یک مقدار از این نوع داده به متغیر دیگری منتقل میشود، مقدار جدیدی به آن داده میشود.
-
String (رشته): مجموعهای از کاراکترها که میتواند شامل متن، اعداد یا نمادها باشد.
let name = "Ali"; // رشته -
Number (عدد): اعداد صحیح و اعشاری.
let age = 25; // عدد صحیح
let height = 1.75; // عدد اعشاری -
Boolean (بولی): نوع دادهای که دو مقدار ممکن دارد: true یا false.
let isAdult = true; // بولی (درست)
let isMinor = false; // بولی (نادرست) -
Undefined (تعریفنشده): هنگامی که یک متغیر تعریف میشود اما مقداردهی نمیشود، مقدار آن undefined است.
let x; // مقدار x برابر undefined است -
Null (خالی): نمایانگر هیچچیز است و برای نمایش نبود یک مقدار استفاده میشود.
let y = null; // مقدار null -
Symbol (نماد): یک نوع داده جدید در جاوا اسکریپت است که برای ایجاد شناسههای منحصر به فرد استفاده میشود.
const sym = Symbol("description"); -
BigInt (عدد بزرگ): برای کار با اعداد خیلی بزرگ که از محدوده عددی معمولی جاوا اسکریپت (که حداکثر ۲^53-1 است) بزرگتر باشند.
const bigNumber = 1234567890123456789012345678901234567890n;
۲.۲. انواع دادههای غیر اولیه (Non-Primitive Data Types)
این نوع دادهها به عنوان مرجع (reference) شناخته میشوند. وقتی که یک مقدار از این نوع داده به متغیر دیگری منتقل میشود، به جای کپی دادهها، یک ارجاع به همان دادهها منتقل میشود.
-
Object (شیء): شیء یک مجموعه از جفتهای کلید-مقدار است که میتواند انواع دادههای مختلف را شامل شود.
let person = {
name: "Ali",
age: 25,
greet: function() {
return "سلام، " + this.name;
}
};
-
Array (آرایه): یک نوع خاص از شیء است که برای ذخیره مجموعهای از دادهها در یک ترتیب استفاده میشود.
let fruits = ["سیب", "موز", "توت"];
۳. تبدیل نوع دادهها (Type Conversion)
در جاوا اسکریپت، ممکن است نیاز به تبدیل نوع دادهها بین انواع مختلف داشته باشیم. این عمل به دو صورت خودکار و دستی انجام میشود:
-
تبدیل خودکار (Implicit Type Conversion): جاوا اسکریپت به طور خودکار برخی از انواع دادهها را به هم تبدیل میکند.
let num = 5;
let str = "10";
let result = num + str; // تبدیل عدد به رشته
console.log(result); // "510" -
تبدیل دستی (Explicit Type Conversion): برای تبدیل انواع دادهها میتوان از توابع مخصوص استفاده کرد.
-
تبدیل به عدد: ()Number
let str = "123";
let num = Number(str); // تبدیل رشته به عدد
console.log(num); // 123 -
تبدیل به رشته: ()String
let num = 123;
let str = String(num); // تبدیل عدد به رشته
console.log(str); // "123" -
تبدیل به بولی: ()Boolean
let x = 0;
let isTrue = Boolean(x); // تبدیل عدد به بولی
console.log(isTrue); // false
-
۴. تفاوت میان == و ===
در جاوا اسکریپت، دو عملگر مقایسه وجود دارد: == و ===. تفاوت آنها در نوع مقایسه است:
-
== (مقایسه با تبدیل نوع): این عملگر مقادیر را مقایسه میکند و اگر نیاز باشد، نوع دادهها را به هم تبدیل میکند.
5 == "5" // true (چون نوعها متفاوت هستند، اما مقدار یکسان است) -
=== (مقایسه بدون تبدیل نوع): این عملگر علاوه بر مقایسه مقادیر، نوع دادهها را نیز مقایسه میکند.
5 === "5" // false (چون نوعها متفاوت هستند)
نتیجهگیری
در جاوا اسکریپت، متغیرها و انواع دادهها برای ذخیره و مدیریت اطلاعات در برنامه استفاده میشوند. برای تعریف متغیرها از کلمات کلیدی var، let و const استفاده میکنیم و انواع دادهها شامل دادههای اولیه و غیر اولیه هستند. آشنایی با نحوه استفاده از این انواع دادهها و تبدیل آنها به یکدیگر برای نوشتن کدهای بهینه و کارآمد ضروری است.
