حلقه های جاوا اسکریپت – جامعه dev

حلقه ها یک مفهوم اساسی در JavaScript (JS) هستند که به شما امکان می دهد چندین بار بلوک کد را اجرا کنید. در اینجا انواع اصلی حلقه ها در JavaScript آورده شده است:
-
برای حلقه: این حلقه زمانی استفاده می شود که از قبل می دانید چند بار می خواهید یک بیانیه یا یک بلوک اظهارات را اجرا کنید.
-
در حالی که حلقه: این حلقه تا زمانی که شرایط مشخص شده صحیح باشد ، به اجرای خود ادامه می دهد.
-
انجام … در حالی که حلقه: این حلقه شبیه به حلقه در حالی است که قبل از بررسی صحیح بودن شرط ، بلوک کد را یک بار اجرا می کند ، تا زمانی که شرط صحیح باشد ، حلقه را تکرار می کند.
-
برای … در حلقه: از این حلقه برای تکرار بیش از خصوصیات یک شی استفاده می شود.
-
برای … از حلقه: از این حلقه برای تکرار بیش از اشیاء قابل تکرار (مانند آرایه ها ، رشته ها و غیره) استفاده می شود.
1. برای حلقه
در for Loop in JavaScript یک بیانیه جریان کنترل است که به شما امکان می دهد تعداد مشخصی از دفعات را یک بلوک از کد اجرا کنید. در اینجا نحو اساسی وجود دارد:
for (initialization; condition; increment) {
// code to be executed
}
در اینجا تجزیه و تحلیل هر قسمت وجود دارد:
- شروع: این یک بار قبل از شروع حلقه اجرا می شود. معمولاً برای اولیه سازی یک متغیر پیشخوان استفاده می شود.
-
وضعیت: این قبل از هر تکرار ارزیابی می شود. اگر باشد
true، حلقه ادامه دارد. اگر باشدfalse، حلقه متوقف می شود. - افزایش: این بعد از هر تکرار اجرا می شود. این معمولاً برای به روزرسانی متغیر پیشخوان استفاده می شود.
در اینجا مثالی وجود دارد که اعداد را از 0 تا 4 چاپ می کند:
for (let i = 0; i < 5; i++) {
console.log(i);
}
در این مثال:
-
let i = 0متغیر پیشخوان را آغاز می کندiبه 0 -
i < 5شرایطی است که حلقه را تا زمانی که در حال اجرا باشدiکمتر از 5 است -
i++متغیر پیشخوان را افزایش می دهدiتوسط 1 بعد از هر تکرار.
در اینجا برخی از اشتباهات رایج مردم هنگام استفاده آورده شده است for حلقه ها در جاوا اسکریپت:
-
خطاهای خارج از یک: این اتفاق می افتد که حلقه یک بار بیش از حد زیاد یا یک بار خیلی کمی اجرا شود. به عنوان مثال ، استفاده از
<=به جای<در شرایط
for (let i = 0; i <= 5; i++) { // This will run 6 times instead of 5
console.log(i);
}
-
حلقه های نامتناهی: این اتفاق می افتد که وضعیت حلقه هرگز نمی شود
falseبشر اگر مرحله افزایش/کاهش وجود داشته باشد یا نادرست باشد ، این می تواند اتفاق بیفتد.
for (let i = 0; i < 5; ) { // Missing increment step
console.log(i);
}
- اولیه سازی نادرست: فراموش کردن اولیه متغیر حلقه یا اولیه کردن نادرست آن.
for (i = 0; i < 5; i++) { // If 'i' is not declared with 'let' or 'var', it can cause issues
console.log(i);
}
- تغییر متغیر حلقه در داخل حلقه: تغییر متغیر حلقه در داخل حلقه می تواند به رفتار غیر منتظره منجر شود.
for (let i = 0; i < 5; i++) {
console.log(i);
i += 2; // Modifying the loop variable inside the loop
}
-
دامنه نادرست متغیرها: استفاده از متغیرهای داخل حلقه که به درستی پیچیده نشده اند می تواند باعث ایجاد مشکلات شود ، به خصوص اگر با آنها اعلام شود
varبه جایletبشر
for (var i = 0; i < 5; i++) {
// 'i' is function-scoped, which can cause issues in larger code blocks
}
-
استفاده نکردن
letبرای متغیرهای حلقه: با استفاده ازvarبه جایletبه دلیل تفاوت در Scoping می تواند به رفتار غیر منتظره منجر شود.
for (var i = 0; i < 5; i++) {
setTimeout(() => console.log(i), 1000); // This will print '5' five times
}
2 در حالی که حلقه است
بوها while حلقه در JavaScript به شما امکان می دهد تا زمانی که یک شرط مشخص صحیح باشد ، یک بلوک کد را اجرا کنید. در اینجا نحو اساسی وجود دارد:
while (condition) {
// code to be executed
}
در اینجا تفکیک نحوه عملکرد آن آورده شده است:
-
وضعیت: این قبل از هر تکرار ارزیابی می شود. اگر باشد
true، حلقه ادامه دارد. اگر باشدfalse، حلقه متوقف می شود.
در اینجا مثالی وجود دارد که اعداد را از 0 تا 4 چاپ می کند:
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
در این مثال:
-
let i = 0متغیر پیشخوان را آغاز می کندiبه 0 -
i < 5شرایطی است که حلقه را تا زمانی که در حال اجرا باشدiکمتر از 5 است -
i++متغیر پیشخوان را افزایش می دهدiتوسط 1 بعد از هر تکرار.
اشتباهات رایج با while حلقه
-
حلقه های نامتناهی: این اتفاق می افتد وقتی که شرط هرگز نمی شود
falseبشر اطمینان حاصل کنید که حلقه راهی برای خاتمه دارد.
let i = 0;
while (i < 5) {
console.log(i);
// Missing increment step, causing an infinite loop
}
- وضعیت نادرست: اگر شرط نادرست باشد ، ممکن است حلقه همانطور که انتظار می رفت اجرا نشود.
let i = 0;
while (i > 5) { // This condition is false from the start, so the loop won't run
console.log(i);
i++;
}
- تغییر نادرست متغیر شرایط: اطمینان حاصل کنید که متغیر مورد استفاده در شرط به درستی در حلقه اصلاح شده است.
let i = 0;
while (i < 5) {
console.log(i);
i += 2; // This will skip some iterations
}
3. برای … در حلقه
در for...in حلقه در JavaScript برای تکرار بیش از خواص یک شی استفاده می شود. این امکان را به شما می دهد تا به هر کلید در شیء یکی یکی دسترسی پیدا کنید. در اینجا نحو اساسی وجود دارد:
for (let key in object) {
// code to be executed
}
در اینجا مثالی آورده شده است که نحوه استفاده از آن را نشان می دهد for...in حلقه:
const person = {
name: "John",
age: 30,
city: "New York"
};
for (let key in person) {
console.log(key + ": " + person[key]);
}
در این مثال:
-
personیک شی با خواص استnameباageوتcityبشر - در
for...inتکرار بیش از هر خاصیت درpersonشیء. -
keyنام ملک فعلی را در هر تکرار نشان می دهد. -
person[key]به ارزش خاصیت فعلی دسترسی پیدا می کند.
اشتباهات رایج با for...in حلقه
-
تکرار بیش از آرایه ها: در حالی که می توانید استفاده کنید
for...inبرای تکرار آرایه ها ، به طور کلی توصیه نمی شود زیرا بیش از همه خصوصیات قابل توجه ، از جمله موارد ارثی تکرار می شود. استفاده کردنfor...ofیا یک استانداردforحلقه برای آرایه ها.
const array = [1, 2, 3, 4, 5];
for (let index in array) {
console.log(index); // This will print the indices, not the values
}
-
خواص غیر منتظره: اگر شیء خواص را به ارث برده است ،
for...inبر روی آنها نیز تکرار خواهد شد. استفاده کردنhasOwnPropertyبرای فیلتر کردن خواص ارثی.
const obj = {a: 1, b: 2};
Object.prototype.c = 3; // Adding an inherited property
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(key + ": " + obj[key]);
}
}
-
مسائل مربوط به عملکرد:
for...inمی تواند نسبت به سایر حلقه ها کندتر باشد زیرا بیش از همه خصوصیات قابل توجه ، از جمله موارد اضافه شده به زنجیره نمونه اولیه ، تکرار می شود.
4. برای … از حلقه
در for...of Loop in JavaScript برای تکرار اشیاء قابل تکرار مانند آرایه ها ، رشته ها ، نقشه ها ، مجموعه ها و موارد دیگر استفاده می شود. این امکان را به شما می دهد تا به هر عنصر در یک تکرار دسترسی پیدا کنید. در اینجا نحو اساسی وجود دارد:
for (let element of iterable) {
// code to be executed
}
در اینجا مثالی آورده شده است که نحوه استفاده از آن را نشان می دهد for...of حلقه با یک آرایه:
const array = [1, 2, 3, 4, 5];
for (let value of array) {
console.log(value);
}
در این مثال:
-
arrayآرایه ای با عناصر است1, 2, 3, 4, 5بشر - در
for...ofتکرار بیش از هر عنصر درarrayبشر -
valueعنصر فعلی را در هر تکرار نشان می دهد.
با استفاده از for...of با سایر موارد تکرار شده
- رشته: می توانید بیش از هر شخصیت در یک رشته تکرار کنید.
const str = "hello";
for (let char of str) {
console.log(char);
}
- نقشه: می توانید بیش از ورودی های یک نقشه تکرار کنید.
const map = new Map([
['a', 1],
['b', 2],
['c', 3]
]);
for (let [key, value] of map) {
console.log(key + ": " + value);
}
- مجموعه: می توانید بیش از عناصر یک مجموعه تکرار کنید.
const set = new Set([1, 2, 3, 4, 5]);
for (let value of set) {
console.log(value);
}
اشتباهات رایج با for...of حلقه
-
با استفاده از
for...ofبا اشیاء غیر قابل قبول:for...ofفقط با اشیاء قابل تکرار قابل استفاده است. تلاش برای استفاده از آن با اشیاء غیر قابل قبول منجر به خطا خواهد شد.
const obj = {a: 1, b: 2};
for (let value of obj) { // This will throw an error
console.log(value);
}
-
گیج کننده
for...ofباfor...in: به یاد داشته باشید کهfor...ofبرای تکرار بیش از مقادیر است ، در حالی کهfor...inبرای تکرار بیش از کلیدها یا نام املاک است.
const array = [1, 2, 3];
for (let index in array) {
console.log(index); // This will print the indices (0, 1, 2)
}
for (let value of array) {
console.log(value); // This will print the values (1, 2, 3)
}
5. انجام … در حالی که حلقه
در do...while حلقه در جاوا اسکریپت شبیه به while حلقه ، اما با یک تفاوت کلیدی: do...while حلقه حداقل یک بار قبل از بررسی شرایط ، بلوک کد را اجرا می کند. در اینجا نحو اساسی وجود دارد:
do {
// code to be executed
} while (condition);
در اینجا مثالی آورده شده است که نحوه استفاده از آن را نشان می دهد do...while حلقه:
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
در این مثال:
-
let i = 0متغیر پیشخوان را آغاز می کندiبه 0 - بلوک کد در داخل
doبخش قبل از بررسی شرایط یک بار اجرا می شود. -
i++متغیر پیشخوان را افزایش می دهدiتوسط 1 بعد از هر تکرار. -
i < 5شرایطی است که حلقه را تا زمانی که در حال اجرا باشدiکمتر از 5 است
اشتباهات رایج با do...while حلقه
-
حلقه های نامتناهی: این اتفاق می افتد وقتی که شرط هرگز نمی شود
falseبشر اطمینان حاصل کنید که حلقه راهی برای خاتمه دارد.
let i = 0;
do {
console.log(i);
// Missing increment step, causing an infinite loop
} while (i < 5);
- وضعیت نادرست: اگر شرط نادرست باشد ، ممکن است حلقه همانطور که انتظار می رفت اجرا نشود.
let i = 0;
do {
console.log(i);
i++;
} while (i > 5); // This condition is false from the start, so the loop will only run once
- تغییر نادرست متغیر شرایط: اطمینان حاصل کنید که متغیر مورد استفاده در شرط به درستی در حلقه اصلاح شده است.
let i = 0;
do {
console.log(i);
i += 2; // This will skip some iterations
} while (i < 5);
6. بیانیه را ادامه دهید
در continue از بیانیه در JavaScript برای پرش از تکرار فعلی یک حلقه استفاده شده و به تکرار بعدی ادامه می یابد. اغلب در داخل استفاده می شود forبا whileوت do...while حلقه ها برای کنترل جریان حلقه بر اساس شرایط خاص.
در اینجا یک مثال با استفاده از a وجود دارد for حلقه:
for (let i = 0; i < 5; i++) {
if (i === 2) {
continue; // Skip the iteration when i is 2
}
console.log(i);
}
در این مثال:
- حلقه از
i = 0بهi < 5بشر - کی
iبرابر است با2،continueبیانیه اجرا می شود ، که بقیه کد را در داخل حلقه برای آن تکرار می کند. - در
console.log(i)بیانیه هنگامی اجرا نمی شودiاست ،2، بنابراین خروجی خواهد بود0, 1, 3, 4بشر
با استفاده از continue در حلقه های دیگر
- در حالی که حلقه:
let i = 0;
while (i < 5) {
i++;
if (i === 2) {
continue; // Skip the iteration when i is 2
}
console.log(i);
}
- انجام … در حالی که حلقه:
let i = 0;
do {
i++;
if (i === 2) {
continue; // Skip the iteration when i is 2
}
console.log(i);
} while (i < 5);
اشتباهات رایج با continue بیانیه
-
پرش از کد مهم: اطمینان حاصل کنید که
continueبیانیه کد اساسی را که باید در هر تکرار اجرا شود ، پرش نمی کند.
for (let i = 0; i < 5; i++) {
if (i === 2) {
continue;
}
// Important code that should not be skipped
console.log("Important code for i = " + i);
}
-
با استفاده از
continueخارج از حلقه ها:continueعبارت فقط در داخل حلقه ها قابل استفاده است. استفاده از آن در خارج از یک حلقه منجر به خطای نحوی خواهد شد.
7. بیانیه شکستن
در break بیانیه در JavaScript برای خروج از یک حلقه یا عبارت سوئیچ زودرس استفاده می شود. وقتی break بیانیه اجرا می شود ، بیانیه حلقه یا سوئیچ بلافاصله خاتمه می یابد و برنامه با بیانیه بعدی به دنبال حلقه یا سوئیچ ادامه می یابد.
با استفاده از break در حلقه ها
- برای حلقه:
for (let i = 0; i < 5; i++) {
if (i === 2) {
break; // Exit the loop when i is 2
}
console.log(i);
}
// Output: 0, 1
- در حالی که حلقه:
let i = 0;
while (i < 5) {
if (i === 2) {
break; // Exit the loop when i is 2
}
console.log(i);
i++;
}
// Output: 0, 1
- انجام … در حالی که حلقه:
let i = 0;
do {
if (i === 2) {
break; // Exit the loop when i is 2
}
console.log(i);
i++;
} while (i < 5);
// Output: 0, 1
با استفاده از break در اظهارات سوئیچ
در break بیانیه نیز معمولاً در آن استفاده می شود switch اظهارات برای خاتمه یک پرونده و جلوگیری از سقوط اعدام به موارد بعدی.
const fruit = "apple";
switch (fruit) {
case "apple":
console.log("This is an apple.");
break; // Exit the switch statement
case "banana":
console.log("This is a banana.");
break;
default:
console.log("Unknown fruit.");
}
در این مثال:
- وقتی
fruitاست ،"apple"، پیام “این یک سیب است”. چاپ شده است ، وbreakبیانیه ازswitchبیانیه - بدون
breakبیانیه ، کد به اجرای پرونده بعدی ادامه می دهد ، که معمولاً رفتار مورد نظر نیست.
اشتباهات رایج با break بیانیه
-
با استفاده از
breakخارج از حلقه ها یا اظهارات سوئیچ:breakعبارت فقط می تواند در داخل حلقه ها یا بیانیه های سوئیچ استفاده شود. استفاده از آن در خارج از این زمینه ها منجر به خطای نحوی خواهد شد. -
فراموش کردن استفاده
breakدر اظهارات سوئیچ: حذفbreakبیانیه در یک مورد سوئیچ می تواند منجر به رفتار ناخواسته سقوط شود ، که در آن موارد متعدد اجرا می شود.
هنگام استفاده از break بیانیه در حلقه های تو در تو ، فقط از حلقه درونی که در آن نامیده می شود خارج می شود. حلقه های بیرونی طبق معمول به اجرای خود ادامه می دهند. در اینجا مثالی برای نشان دادن این موضوع آورده شده است:
for (let i = 0; i < 3; i++) {
console.log("Outer loop:", i);
for (let j = 0; j < 3; j++) {
if (j === 1) {
break; // Exit the inner loop when j is 1
}
console.log(" Inner loop:", j);
}
}
در این مثال:
- حلقه بیرونی از
i = 0بهi < 3بشر - حلقه داخلی از
j = 0بهj < 3بشر - کی
jبرابر است با1،breakبیانیه از حلقه داخلی خارج می شود ، اما حلقه بیرونی به تکرار بعدی ادامه می یابد.
خروجی خواهد بود:
Outer loop: 0
Inner loop: 0
Outer loop: 1
Inner loop: 0
Outer loop: 2
Inner loop: 0
بیرون کشیدن از چندین حلقه
اگر نیاز به خارج شدن از چندین حلقه تو در تو دارید ، می توانید از برچسب ها استفاده کنید. در اینجا یک مثال آورده شده است:
outerLoop: for (let i = 0; i < 3; i++) {
console.log("Outer loop:", i);
for (let j = 0; j < 3; j++) {
if (j === 1) {
break outerLoop; // Exit both the inner and outer loops
}
console.log(" Inner loop:", j);
}
}
در این مثال:
- در
outerLoopبرای شناسایی حلقه بیرونی از برچسب استفاده می شود. - در
break outerLoopبیانیه از هر دو حلقه داخلی و بیرونی خارج می شودjبرابر است با1بشر
خروجی خواهد بود:
Outer loop: 0
Inner loop: 0



