یکی دستورات کاربردی در هنگام حلقه بخصوص هر نوع آبجکتی که قابلیت iterable یا پیمایش شدن را دارند استفاده از دستور for of است.
این ویژگی در نسخه es6 سال ۲۰۱۵ معرفی شد
منظور از iterable بودن چیست؟
هر نوع آبجکتی که دارای خصوصیت length و خصوصیت Symbol(Symbol.iterator) است iterable گفته میشود.
در جلسه قبل متوجه شدیم اگر قصد داشته باشیم نام خصوصیت آبجکت را بدست بیاوریم از حلقه for…in استفاده می کنیم.در این نوع حلقه مقدار بازگشتی برابر با نام خصوصیت property جاری است.
مثال:
1 2 3 4 5 6 7 8 |
var names = ["amir javanmir","shahryar barati"]; for(var x in names){ console.log(x); } /* 0 1 */ |
1 2 3 4 5 6 7 8 |
var names = ["amir javanmir","shahryar barati"]; for(var x in names){ console.log(names[x]); } /* amir javanmir shahryar barati */ |
دستور for of قابل استفاده در:
- آرایه ها
- رشته ها
- نقشه ها
- نودلیست ها
نحوه نوشتن:
این دستور شبیه دستور for in است. در این نوع حلقه در هر بار حلقه مقدار property به متغیر variable تخصیص مییابد.بنابراین مقدار variable برابر با مقدار آیتم جاری است
1 2 3 |
for (variable of iterable) { // code block to be executed } |
وضعیت پشتیبانی از مرورگرها:
مرورگر Chrome | مرورگر Firefox | مرورگر Edge | مرورگر Safari | مرورگر Opera |
---|---|---|---|---|
از ۳۸ به بعد | از ۵۱ به بعد | ۱۲ به بعد | از ۷ به بعد | از ۲۵ به بعد |
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
let language = "amir javanmir"; let text = ""; for (let x of language) { text += x + "<br>";; } /* a m i r j a v a n m i r */ |