آموزش Symbol در جاوا اسکریپت

رتبه: 0 ار 0 رای sssss
سیمبل
نویسنده: میلاد حیدری زمان مطالعه 4 دقیقه
Banner Image

در این آموزش به کمک مثال های مختلف با نوع Symbol در جاوا اسکریپت (JavaScript) آشنا خواهید شد.

جاوا اسکریپت ES6 یک نوع داده ابتدایی جدید به نام Symbol (سمبل) معرفی کرده است. Symbolها تغییرناپذیر و منحصر به فرد هستند. مثال،

// با توضیحات یکسانSymbol دو

let value1 = Symbol(‘hello’);

let value2 = Symbol(‘hello’);

console.log(value1 === value2); // false

گرچه value1 و value2 هر دو توضیح یکسانی دارند اما متفاوت هستند.

ساخت Symbol

برای ساخت یک Symbol از تابع ()Symbol استفاده می شود.

// Symbol ساخت

const x = Symbol()

typeof x; // symbol

می توانید یک رشته اختیاری به عنوان توضیح ارسال کنید. مثال،

const x = Symbol(‘hey’);

console.log(x); // Symbol(hey)

دسترسی به توضیح Symbol

برای دسترسی به توضیح یک Symbol از عملگر نقطه . استفاده می شود.

const x = Symbol(‘hey’);

console.log(x.description); // hey

اضافه کردن Symbol به عنوان کلید شی

با استفاده از کروشه [ ] می توانید symbolها را به عنوان کلید ویژگی برای شی قرار دهید. مثال،

let id = Symbol(“id”);

let person = {

name: “Jack”,

// به عنوان کلیدsymbol اضافه کردن

[id]: 123 // not “id”: 123

};

console.log(person); // {name: “Jack”, Symbol(id): 123}

Symbol در حلقه for…in

حلقه for…in ویژگی های شی با کلید Symbol را پیمایش نمی کند. مثال،

let id = Symbol(“id”);

let person = {

name: “Jack”,

age: 25,

[id]: 12

};

// for…in استفاده از حلقه

for (let key in person) {

console.log(key);

}

خروجی

name

age

مزیت استفاده از Symbol در شی

اگر از یک قطعه کد مشابه در برنامه های مختلف استفاده می شود، بهتر است از symbol در کلید شی استفاده کنید. زیرا می توانید از یک نام کلید مشابه در کدهای مختلف استفاده کنید و از مشکلات تکرار و دوباره نویسی جلوگیری کنید.

let person = {

name: “Jack”

};

// symbol ساخت

let id = Symbol(“id”);

// به عنوان کلید symbolاضافه کردن

person[id] = 12;

در مثال بالا اگر شی person در برنامه دیگری استفاده شود، نیازی نیست تا ویژگی اضافه شود که توسط برنامه دیگری قابل دسترسی یا قابل تغییر باشد. در نتیجه با استفاده از Symbol یک ویژگی منحصر به فرد ایجاد می کنید که می توانید از آن استفاده کنید.

حالا اگر برنامه دیگری نیز نیاز به ویژگی با نام id دارد فقط کافیست یک Symbol به نام id را اضافه کنید و مشکلات دوباره نویسی هم به وجود نمی آید.

let person = {

name: “Jack”

};

let id = Symbol(“id”);

person[id] = “Another value”;

در این مثال حتی اگر از نام مشابه برای ذخیره مقادیر استفاده شود، نوع داده Symbol یک مقدار منحصر به فرد خواهد داشت.

در اینجا اگر از کلید رشته ای استفاده شود، برنامه بعدی می تواند مقدار ویژگی را تغییر دهد. مثال،

let person = {

name: “Jack”

};

// استفاده از نوع رشته ای برای کلید

person.id = 12;

console.log(person.id); // 12

// تغییر مقدار در برنامه دیگر

person.id = ‘Another value’;

console.log(person.id); // Another value

در این مثال مقدار person.id تغییر یافته است.

متدهای Symbol

در جدول زیر متدها مختلف برای نوع داده Symbol توضیح داده شده است.

توضیحات متد
برای نمادهای موجود جستجو می کند.

for()

کلید symbol به اشتراک گذاشته را از رجیستری symbol سراسری برمیگرداند.

keyFor()

رشته ای حاوی منبع شی Symbol را برمیگرداند.

toSource()

رشته ای حاوی توضیح Symbol را برمیگرداند.

toString()

مقدار ابتدایی شی Symbol را برمیگرداند.

valueOf()

مثال: متدهای Symbol

// با استفاده از نام symbol گرفتن

let sym = Symbol.for(‘hello’);

let sym1 = Symbol.for(‘id’);

// Symbol گرفتن نام با استفاده از

console.log( Symbol.keyFor(sym) ); // hello

console.log( Symbol.keyFor(sym1) ); // id

ویژگی های Symbol

توضیحات ویژگی
AsyncIterator پیشفرض برای شی را برمیگرداند.

asyncIterator

تعیین می کند آیا سازنده شی یک شی را به عنوان نمونه خود تشخیص می دهد.

hasInstance

نشان می دهد آیا یک شی باید به عناصر آرایه اش مسطح شود یا نه؟

isConcatSpreadable

تکرار کننده پیشفرض شی را برمیگرداند.

iterator

با یک رشته مطابقت می دهد.

match

یک تکرار کننده برمیگرداند که تطبیق های یک عبارت منظم با یک رشته را ایجاد می کند.

matchAll

زیر رشته های یک رشته تطبیق یافته را جایگزین می کند.

replace

ایندکس داخل رشته را برمیگرداند که با عبارت منظم مطابقت دارد.

search

رشته ای را به ایندکس هایی تقسیم می کند که با عبارت منظم مطابقت دارند.

split

اشیا مشتق شده ایجاد می کند.

species

یک شی را به یک مقدار ابتدایی تبدیل می کند.

toPrimitive

برای توصیف پیشفرض یک شی استفاده می شود.

toStringTag

رشته حاوی توضیح symbol

Description

مثال: ویژگی های Symbol

const x = Symbol(‘hey’);

// description ویژگی

console.log(x.description); // hey

const stringArray = [‘a’, ‘b’, ‘c’];

const numberArray = [1, 2, 3];

// isConcatSpreadable ویژگی

numberArray[Symbol.isConcatSpreadable] = false;

let result = stringArray.concat(numberArray);

console.log(result); // [“a”, “b”, “c”, [1, 2, 3]]

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «آموزش Symbol در جاوا اسکریپت»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید