در اینجا چیزی است که توسعه دهندگان مبتدی و با تجربه باید در مورد کار با آرایه جاوا اسکریپت، حلقه for، forEach، نقشه، کاهش، زیر رشته و سوئیچ بدانند.
- آرایه: ذخیره مجموعه ها
- برای: حلقه کلاسیک
- forEach: حلقه عملکردی
- نقشه: اصلاحکننده عملکردی
- کاهش: تبدیل مجموعه ها به یک مقدار
- رشته فرعی
- سوئیچ
- نتیجهگیری
تحقیق نشان می دهد که هفت عنصر زبان جاوا اسکریپت وجود دارد که توسعه دهندگان بیشتر از هر عنصر دیگری جستجو می کنند. در حالی که ممکن است نتوانید یک برنامه کامل جاوا اسکریپت را تنها با استفاده از این ویژگی ها بنویسید، مطمئناً بدون آن ها راه زیادی نخواهید رسید. مبتدیان باید آنها را بیاموزند، اما آنها همچنین تقویت کننده های مغزی عالی برای جانبازان جاوا اسکریپت هستند. بیایید نگاهی به ویژگیهای زبان جاوا اسکریپت بیندازیم.
عناصر زبان جاوا اسکریپت “بیشترین جستجو”
برای
حلقهنقشه
foreach
رشته فرعی
آرایه
سوئیچ
کاهش
آرایه: ذخیره مجموعه ها
مجموعه مقادیر یکی از جنبه های ضروری همه زبان های برنامه نویسی است. در جاوا اسکریپت از آرایه ها برای ذخیره مجموعه ها استفاده می کنیم. آرایه های جاوا اسکریپت بسیار انعطاف پذیر هستند، که عمدتاً به دلیل سیستم تایپ پویا جاوا اسکریپت است. میتوانید یک آرایه خالی یا آرایهای که از قبل دارای مقادیر است را اعلام کنید:
// make a new empty array:
const myArray = [];
//add a value:
myArray.push("Happy New Year");
console.log(myArray[0]); // outputs “Happy New Year”
// make an array with values:
const myOtherArray = [0, "test", true];
مانند بسیاری از زبانها، آرایهها در جاوا اسکریپت “پایه ۰” هستند، به این معنی که اولین عنصر دارای شاخص ۰ به جای ۱ است. همچنین میتوانید ببینید که myOtherArray
میتواند انواع مختلفی را در خود جای دهد: اعداد، رشته ها و بولی ها.
برای: حلقه کلاسیک
حلقه for
جزء اساسی همه زبانهای برنامهنویسی است، اما نسخه جاوا اسکریپت دارای برخی ویژگیها است. نحو اصلی حلقه for
این است:
for (let i = 0; i < 10; i++){
console.log("i is going up: "+ i);
}
این کد می گوید: متغیری به نام i به من بدهید و تا زمانی که کمتر از ۱۰ باشد، کاری را انجام دهید که در داخل بریس ها نشان داده شده است. هر بار که انجام می دهید، ۱ را به i اضافه کنید. این یک متغیر حلقه مشترک است که در آن “i” مخفف “iterator.”
است
این شکل از for
در جاوا اسکریپت برای بسیاری از زبانها معمول است. این یک نوع حلقه اعلامی است. این فرم بسیار منعطف است، زیرا هر قسمت می تواند تغییرات زیادی داشته باشد:
// This will loop forever, unless something else changes i, because i is not modified by the loop
for (let i = 0; i < 10;){
console.log("i is going up: "+ i);
}
// you can declare multiple variables, tests and modifiers at once
for (let i = 0, j = 10; i * j < 80 && i < 10; i++, j=j+5){
console.log(i * j); // outputs 0, 15, 40, 75 and breaks
}
اعلام تکرارکنندههای توصیفی بیشتر مانند userIterator
یا productCounter
، بهویژه زمانی که با حلقههای تودرتو پیچیده سروکار دارید، میتواند مفید باشد.
همچنین یک حلقه for-in
در جاوا اسکریپت وجود دارد که برای حلقه زدن روی اشیاء JSON مفید است:
let myObject = { foo: "bar", test: 1000 }
for (let x in myObject) {
for (let x in myObject) { console.log(x + "=" + myObject[x]) }
}
// outputs: foo=bar test=1000
همچنین میتوانید از for-in
در آرایهها استفاده کنید:
let arr = [5, 10, 15, 20];
for (let x in arr2) {
console.log(x + "=" + arr2[x]);
}
// outputs: 0=5, 1=10, 2=15, 3=20
در اشیاء، تکرار کننده (x) به نام ویژگی تبدیل می شود. در آرایه، به شاخص تبدیل می شود. سپس میتوان از آن برای دسترسی به ویژگیها و عناصر شی یا آرایه استفاده کرد.
forEach: حلقه عملکردی
جاوا اسکریپت مدرن برنامه نویسی تابعی را در بر می گیرد و تابع forEach
یک مثال عالی از آن است. حلقه forEach
یک روش ساده و کاربردی برای تکرار روی مجموعهها است: تمام منطق را محکم نگه میدارد—هیچ متغیرهای تکرارکننده خارجی را مانند for
اعلام نمیکنند.
در اینجا، می توانید سادگی forEach
را ببینید:
arr.forEach((x) => { console.log (x) })
// outputs: 5, 10, 15, 20
ما تابعی را به forEach
منتقل کردهایم و یک تابع ناشناس درون خطی را با استفاده از نحو فلش تعریف میکنیم. انجام این کار بسیار رایج است. (همچنین میتوانیم یک تابع نامگذاری شده را اعلام کرده و آن را ارسال کنیم.)
متوجه خواهید شد که در forEach
، به متغیری که در معرض نمایش قرار میگیرد، در مورد ما x، در واقع مقدار عنصر داده میشود، نه شاخص.
روش ساده دیگری برای دریافت تکرار وجود دارد که رفتار مشابهی دارد:
arr.forEach((x, i) => { console.log (i + "=" + x) })
// outputs 0=5, 1=10, 2=15, 3=20
همچنین نحو پیکان ساده شده را با forEach
(که رفتار مشابهی دارد) مشاهده خواهید کرد:
arr2.forEach(x => console.log(x))
این نحو به طور خودکار برمی گردد، اما forEach
به مقدار بازگشتی نیاز ندارد.
بسیاری از توسعه دهندگان forEach
را به حلقه سنتی for
ترجیح می دهند. به طور کلی، از هر نحوی استفاده کنید که کد شما را راحتتر درک میکند. (این کار باعث می شود که سایر توسعه دهندگان نیز درک کنند.)
نقشه: اصلاح کننده عملکردی
در حالی که forEach
به سادگی روی هر عنصر حلقه میزند، تابع map
به شما امکان میدهد روی آرایه حلقه بزنید و اقداماتی را روی هر عنصر انجام دهید. تابع map
مجموعه جدیدی را با عملکرد اعمال شده برای هر عنصر برمی گرداند.
فرض کنید میخواستیم آرایه خود را بگیریم و هر عنصر را در ۱۰ ضرب کنیم:
let modifiedArr = arr.map((x) => { return x * 10 } )
// modifiedArray now holds: [50, 100, 150, 200]
میتوانید از فرم کوتاه نیز استفاده کنید:
let modifiedArr = arr.map(x => x * 100 )
// modifiedArray now holds: [500, 1000, 1500, 2000]
با استفاده از فرم طولانی، میتوانید منطق دلخواه را در پاسخ به تماس انجام دهید:
let modifiedArr = arr.map((x) => {
let foo = 1000;
// Do more stuff
return x * foo;
})
با پیچیدهتر شدن پاسخ(های) تماس، سادگی map
کاهش مییابد. به این معناست: هر زمان که ممکن است، تماس های ساده را ترجیح دهید.
reduce: تبدیل مجموعه ها به یک مقدار واحد
در کنار map
، reduce
بخشی کاربردی از جاوا اسکریپت است. این به شما امکان می دهد مجموعه ای را بردارید و یک مقدار واحد را برگردانید. هر زمان که نیاز به انجام عملیاتی در یک آرایه دارید که آن را به یک مقدار “کاهش” میدهد، میتوانید از reduce
استفاده کنید:
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((accumulator, number) => accumulator + number);
console.log(sum); // Output: 10
reduce
یک تابع دو آرگومان می گیرد، که در آن آرگومان اول accumulator است – متغیری که در تمام تکرارها زندگی می کند و در نهایت به خروجی تبدیل می شود. کد>کاهش تماس. آرگومان دوم (number
) مقدار عنصر برای تکرار است.
میتوانید از reduce
برای تعیین مقدار شروع با تنظیم آرگومان دوم بعد از تابع برگشت استفاده کنید:
// With initial value of 10
const sum2 = numbers.reduce((accumulator, number) => accumulator + number, 10);
console.log(sum2); // Output: 20 (10 + 1 + 2 + 3 + 4)
این همچنین برای زمانی که مجموعه ممکن است خالی باشد مفید است. در آن صورت، آرگومان دوم به عنوان یک مقدار پیش فرض عمل می کند.
رشته فرعی
String.substring
روشی بر روی اشیاء string
است که به شما امکان می دهد بخشی از رشته را دریافت کنید:
// Let’s get the substring of this Emerson quote:
let myString = "Enthusiasm is the mother of effort, and without it nothing great was ever achieved."
console.log(myString.substring(0,34));
// outputs: 'Enthusiasm is the mother of effort'
سوئیچ
یک سوئیچ
یک ویژگی زبان رایج است که جریان کنترل انشعاب را کنترل می کند. توسعهدهندگان از switch
برای مدیریت شاخهها به روشی فشردهتر و قابل فهمتر از if/else
استفاده میکنند که گزینههای زیادی وجود دارد. در طول سالها، عبارت switch
جاوا اسکریپت قدرتمندتر شده است. نحو اصلی یک سوئیچ
این است:
switch (word) {
case "Enthusiasm":
console.log("This word is about passion and excitement.");
break;
case "mother":
console.log("This word is about the source or origin.");
break;
case "effort":
console.log("This word is about hard work and dedication.");
break;
default:
console.log("I don't have specific analysis for this word.");
}
کلمه کلیدی switch
یک متغیر را می پذیرد که در این مورد word
است. هر عبارت case مربوط به مقدار احتمالی متغیر switch
است. توجه داشته باشید که باید از دستور break
برای پایان دادن به بلوک case استفاده کنیم. این با بسیاری از سازه هایی که در آن از مهاربندها برای تعریف محدوده استفاده می شود متفاوت است. اگر یک عبارت break
حذف شود، کد به عبارت case
بعدی “میافتد”.
عبارت پیشفرض case
را به ما میدهد که اگر چیز دیگری مطابقت نداشته باشد اجرا میشود. این اختیاری است.
در اینجا نحوه استفاده از عبارت switch
با نقل قول امرسون آمده است:
let myString = "Enthusiasm is the mother of effort, and without it nothing great was ever achieved."
function analyzeWord(word) {
switch (word) {
case "Enthusiasm":
console.log("This word is about passion and excitement.");
break;
case "mother":
console.log("This word is about the source or origin.");
break;
case "effort":
console.log("This word is about hard work and dedication.");
break;
default:
console.log("I don't have specific analysis for this word.");
}
}
myString.split(" ").forEach((word) => analyzeWord(word));
این مثال چندین عنصر را گرد هم می آورد. ما رشته
را با split(" ")
به زیر رشته ها تقسیم می کنیم، سپس روی هر کلمه با استفاده از forEach
تکرار می کنیم و کلمه را به خود منتقل می کنیم. عبارت switch
در یک تابع پیچیده شده است. اگر این کد را اجرا کنید، توضیحی برای هر کلمه شناخته شده و پیشفرض برای بقیه ارائه میشود.
نتیجه گیری
ما برخی از مفیدترین و جستجوشدهترین اصول جاوا اسکریپت را بررسی کردهایم. هر یک از اینها بخش مهمی از جعبه ابزار جاوا اسکریپت شما هستند.
پست های مرتبط
۷ عنصر زبان جاوا اسکریپت که هر توسعه دهنده ای به آن نیاز دارد
۷ عنصر زبان جاوا اسکریپت که هر توسعه دهنده ای به آن نیاز دارد
۷ عنصر زبان جاوا اسکریپت که هر توسعه دهنده ای به آن نیاز دارد