اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
دو دقیقه
همانطور که پیشتر در این مطلب نیز توضیح داده شد symbol یک primitive data type مانند number و string است. حین کار کردن با سمبلها باید این نکات را در نظر بگیرید:
- منحصربفرد و immutable (غیرقابل تغییر) هستند.
- همانند رشتهها میتوان از آنها به عنوان کلیدی برای پراپرتیها یک شیء استفاده کرد.
بنابراین از سمبلها بیشتر جهت توکنهای منحصر به فرد برای استفاده و به عنوان کلید در پراپرتیهای اشیاء استفاده خواهد شد. در اینجا میتوانید لیستی از سمبلهای رایج را مشاهده کنید.
Iterators and Generators
یک شیء زمانی قابلیت پیمایش را خواهد داشت که یک پیادهسازی از Symbol.iterator را داشته باشد:
var myIterable = {} myIterable[Symbol.iterator] = function* () { yield 1; yield 2; yield 3; };
for (let item of myIterable) { console.log(item); }
تفاوت حلقهی for..of با حلقهی for..in
هر دوی این حلقهها یک لیست را پیمایش میکنند. با این تفاوت که حلقهی for..in کلید هر آیتم را بر میگرداند اما for..of مقدار هر آیتم را بر میگرداند:
let list = [4, 5, 6]; for (let i in list) { console.log(i); // "0", "1", "2", } for (let i of list) { console.log(i); // "4", "5", "6"
به عنوان مثال کد زیر را در نظر بگیرید:
let numbers = [1, 2, 3]; for (let num of numbers) { console.log(num); }
اگر target را به ES5 و یا ES6 تنظیم کرده باشید، کد تولید شدهی یک حلقهی for را به اینصورت برایتان تولید خواهد کرد:
var numbers = [1, 2, 3]; for (var _i = 0, numbers_1 = numbers; _i < numbers_1.length; _i++) { var num = numbers_1[_i]; console.log(num); } //# sourceMappingURL=app.js.map