۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

۷ عنصر زبان جاوا اسکریپت که هر توسعه دهنده ای به آن نیاز دارد

در اینجا چیزی است که توسعه دهندگان مبتدی و با تجربه باید در مورد کار با آرایه جاوا اسکریپت، حلقه for، forEach، نقشه، کاهش، زیر رشته و سوئیچ بدانند.

در اینجا چیزی است که توسعه دهندگان مبتدی و با تجربه باید در مورد کار با آرایه جاوا اسکریپت، حلقه for، 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 ترجیح می دهند. به طور کلی، از هر نحوی استفاده کنید که کد شما را راحت‌تر درک می‌کند. (این کار باعث می شود که سایر توسعه دهندگان نیز درک کنند.)

Mastodon، Steampipe و RSS

نقشه: اصلاح کننده عملکردی

در حالی که 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 در یک تابع پیچیده شده است. اگر این کد را اجرا کنید، توضیحی برای هر کلمه شناخته شده و پیش‌فرض برای بقیه ارائه می‌شود.

نتیجه گیری

ما برخی از مفیدترین و جستجوشده‌ترین اصول جاوا اسکریپت را بررسی کرده‌ایم. هر یک از اینها بخش مهمی از جعبه ابزار جاوا اسکریپت شما هستند.