انواع حلقه ها در جاوا اسکریپت
ساختار های تکراری که جاوا اسکریپت آن ها را پشتیبانی می کند به شرح زیر می باشد.
1. for
2. for...in
3. for...of
4.while
5.do...while
حلقه for در جاوا اسکرییپت
اولین حلقه ای که می خواهیم بررسی کنیم حلقه for هست. اگر بخواهیم بلاک کد را چندین مرتبه تکرار کنیم از این حلقه استفاده می نماییم. بریم ببینم سینتکس آن به شکل است.
1.
2.
3.
|
for (statement 1; statement 2; statement 3) {
// code block to be executed
}
|
عبارت اول :قبل از اجرای بلوک کد یک بار اجرا می شود عبارت دوم :شروط اجرای حلقه در این بخش نوشته می شود .عبارت سوم: پس از اجرای کدهای داخل بلاک اجرا میشود. در این قسمت گام های حلقه نوشته می شود.
1.
2.
3.
|
for (let i = 0; i < 5; i++) {
text += "The number is " + i + "<br>";
}
|
در این مثال عبارت1 ، یک متغیر را قبل از شروع حلقه مقدار دهی می کند (i = 0). عبارت 2 شرط اجرای حلقه را تعریف می کند شرط حلقه به این صورت است که اگر i از 5 کوچکتر باشد دستورات داخل بلاک حلقه اجرا می شود در غیر این صورت از حلقه بیرون خواهیم امد. عبارت 3 هر بار که بلوک کد در حلقه اجرا می شود مقدار i را به اندازه یک واحد افزایش می دهد.
توضیحات مربوط به Statement ها
همانطور که اعلام کردیم از Statement 1 معمولاً برای مقداردهی اولیه متغیر مورد استفاده در حلقه استفاده می کنیم . که همیشه اینطور نیست، جاوا اسکریپت به عبارت اول زیاد اهمیت نمی دهد و ان را اختیاری در نظر گرفته است خواه چه بخواهیم مقادیر زیادی را در ان تعریف کنیم یا خواه آن قسمت را خالی بگذاریم.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
|
for (let i = 0, len = cars.length, text = ""; i < len; i++) {
text += cars[i] + "<br>";
}
////////////////
let i = 2;
let len = cars.length;
let text = "";
for (; i < len; i++) {
text += cars[i] + "<br>";
}
|
اغلب عبارت 3 مقدار متغیر اولیه را افزایش می دهد. همیشه اینطور نیست، این مورد نیز در جاوا اسکریپت اختیاری می باشد . عبارت 3 می تواند هر کاری مانند افزایش منفی (i–)، افزایش مثبت (i = i + 15) یا هر چیز دیگری را انجام دهد. عبارت 3 را نیز می توان حذف کرد (مثل زمانی که مقادیر خود را در داخل حلقه افزایش می دهید):
محدوه حلقه ها
وقتی در حلقه ها از متغییر var استفاده می کنیم با توجه به اینکه یک متغیر سراسری می باشد تغییراتی که درون حلقه برای ان متغیر ایجاد می شود در بیرون از حلقه نیز هنگام استفاده از ان اخرین مقدار گرفته شده برای ان متغیر در حلقه خواهد بود.
مثال:
1.
2.
3.
4.
5.
6.
7.
|
var i = 5;
for (var i = 0; i < 10; i++) {
// some code
}
// Here i is 10
|
حال اگر برای متغیر از let استفاده نماییم ان متغیر فقط در بلاک حلقه ما قابل استفاده خواهد بود و در خارج از حلقه نمیتوانیم از ان استفاده نماییم.و تغییرات ایجاد شده برای ان مختص همان بلاک می باشد نه جای دیگر.
مثال:
1.
2.
3.
4.
5.
6.
7.
|
let i = 5;
for (let i = 0; i < 10; i++) {
// some code
}
// Here i is 5
|
حلقه for in
در جاوا اسکریگت وقتی بخواهیم برای خصوصیات یک شی حلقه ایجاد کنیم از ساختار for in استفاده می نماییم.که سینتکس ان به صورت زیر می باشد.
1.
2.
3.
|
for (key in object) {
// code block to be executed
}
|
مثال:
1.
2.
3.
4.
5.
6.
|
const person = {fname:"John", lname:"Doe", age:25};
let text = "";
for (let x in person) {
text += person[x];
}
|
در مثال بالا ساختار for in روی شی شخص حلقه ایجاد می نماید.و در هر بار تکرار یک کلید x را برمی گرداند.از کلید برای دستیابی به مقادیر شی استفاده می کنیم.
همچنین برای ارایه ها نیز می توانیم از حلقه for in استفاده نماییم.ولی اگر برای ما شاخص مهم باشد از for in بهتر است در بیش از یک رایه استفاده نکنیم.
مثال:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
|
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript For In</h2>
<p>The for in statement can loops over array values: </p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let txt = "";
for (let x in numbers) {
txt += numbers[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>
خروجی
JavaScript For In
The for in statement can loops over array values:
45
4
9
16
25
|
حلقه for of در جاوا اسکریپت
ساختار for of از طریق مقادیر یک شی تکرار پذیر،حلقه می زند.این ساختاربه ما امکان این را میدهد تا روی ساختارهای داده تکرارشونده مانند آرایهها، رشتهها، نقشهها و موارد دیگر حلقه بزنیم.که سینتکس ان به شکل زیر می باشد.
1.
2.
3.
|
for (variable of iterable) {
// code block to be executed
}
|
variable :متغیر ها را میتوانیم به صورت var و const و یا let تعریف نماییم.
iterable: شیئی که دارای ویژگیهای تکرارپذیر است.
مثال برای استفاده در ارایه و رشته ها در حلقه for of.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
|
const cars = ["BMW", "Volvo", "Mini"];
let text = "";
for (let x of cars) {
text += x;
}
let language = "JavaScript";
let text = "";
for (let x of language) {
text += x;
}
|
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
|
const cars = ["BMW", "Volvo", "Mini"];
let text = "";
for (let x of cars) {
text += x;
}
let language = "JavaScript";
let text = "";
for (let x of language) {
text += x;
}
|
ساختار for…of از سال 2015 به جاوا اسکریپت اضافه شد.و مرورگر هایی که از این ساختار پشتیبانی میکنند به شرح زیر می باشد.
حلقه while در جاوا اسکریپت
حلقه while از طریق یک بلوک کد تا زمانی که یک شرط مشخص درست باشد، حلقه می زند.شبیه حلقه for عمل می کند.سینتکس ان به شکل زیر می باشد
1.
2.
3.
|
while (condition) {
// code block to be executed
}
|
در مثال زیر، تا زمانی که متغیر (i) کمتر از 10 باشد، کد موجود در حلقه به طور مکرر اجرا خواهد شد:
1.
2.
3.
4.
|
while (i < 10) {
text += "The number is " + i;
i++;
}
|
اگر فراموش کنیم که متغیر مورد استفاده در شرط را افزایش دهیم،لذا باز حلقه هرگز پایان نخواهد یافت.
حلقه do while در جاوا اسکریپت
حلقه do while نوعی از حلقه while است. این حلقه یک بار بلوک کد را اجرا می کند، قبل از بررسی اینکه آیا شرط درست است یا خیر، سپس تا زمانی که شرط درست باشد، حلقه را تکرار می کند.سینتکس این حلقه به شکل زیر می باشد.
1.
2.
3.
4.
|
do {
// code block to be executed
}
while (condition);
|
مثال زیر از یک حلقه do while استفاده می کند. حلقه همیشه حداقل یک بار اجرا می شود، حتی اگر شرط نادرست باشد، زیرا بلوک کد قبل از آزمایش شرط اجرا می شود.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
|
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Do While Loop</h2>
<p id="demo"></p>
<script>
let text = ""
let i = 0;
do {
text += "<br>The number is " + i;
i++
|
(0)نظر