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

Techboy

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

نحوه استفاده از دستورات جاوا اسکریپت در برنامه های خود

توسعه دهندگان از دستورات برای کنترل جریان کلی برنامه، از جمله اعلان های متغیر، عملیات شرطی و فرآیندهای تکرار شونده استفاده می کنند. در اینجا نحوه نوشتن عبارات جاوا اسکریپت آمده است.

توسعه دهندگان از دستورات برای کنترل جریان کلی برنامه، از جمله اعلان های متغیر، عملیات شرطی و فرآیندهای تکرار شونده استفاده می کنند. در اینجا نحوه نوشتن عبارات جاوا اسکریپت آمده است.

عبارات جاوا اسکریپت جریان کلی برنامه های جاوا اسکریپت را کنترل می کند. دستورات برای اعلان متغیرها و مدیریت فرآیندهای تکرار شونده استفاده می شوند و همچنین می توان از آنها برای اعلام کلاس ها و توابع استفاده کرد.

برخلاف ویژگی‌ها، روش‌ها و رویدادها که از شیء مالک آنها جدایی‌ناپذیرند، دستورات به‌طور مستقل کار می‌کنند. این بدان معناست که می‌توانید از یک عبارت در هر زمینه‌ای استفاده کنید، چه در حال برنامه‌نویسی یک برنامه سمت سرویس گیرنده یا سمت سرور باشید. به عنوان یک زبان، جاوا اسکریپت از عبارات نسبتا کمی پشتیبانی می کند – فقط به اندازه کافی برای ساخت برنامه های کاربردی.

درباره نویسندگان

نسخه قبلی این مقاله توسط گوردون مک‌کامب نوشته شده و در JavaWorld منتشر شده است. متیو تایسون مقاله را با نمونه‌های دستوری و کد جدیدتر در می ۲۰۲۴ به‌روزرسانی کرد.

این مقاله نمونه ای از عبارات جاوا اسکریپت را پوشش می دهد که به احتمال زیاد آنها را می بینید و در برنامه های جاوا اسکریپت خود استفاده می کنید. تعدادی از عبارات موجود در اینجا – یعنی comment، let و new – اعلان‌ها هستند. اینکه آیا اعلامیه‌ها می‌توانند بیانیه نیز باشند موضوعی بحث‌برانگیز است، اما معمولاً در برنامه‌ها با آنها رفتار می‌شود.

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

عبارات جاوا اسکریپت زیر با نمونه کد معرفی می شوند:

  • //
  • برای
  • برای…در
  • اگر...دیگر
  • عملکرد
  • جدید
  • بازگشت
  • این
  • var، اجازه، const
  • در حالی که
  • انجام ... در حالی که
  • با
  • شکستن
  • ادامه
  • سوئیچ
  • امتحان کنید، گرفتن، در نهایت، پرتاب

نظر (//)

نحو نظر (//) به جاوا اسکریپت می گوید که می خواهید نظرات توضیحی را در برنامه خود قرار دهید. نظر در اولین بازگشت سخت (خط شکسته) پس از بیانیه به پایان می رسد. جاوا اسکریپت هیچ محدودیتی برای طول کامنت قائل نیست، تا زمانی که قبل از پایان آن هیچ بازگشت سختی وجود نداشته باشد. جاوا اسکریپت هر متنی را پس از بازگشت سخت، کد معتبر فرض می کند. در اینجا نمونه ای از یک نظر در کد آمده است:


// This is a simple comment

اگرچه نظر به خط دوم می رسد، خط اول با “بازگشت نرم” در برنامه ویرایش متن به پایان می رسد. هیچ کاراکتر بازگشتی سخت درج نشده است.

شما می توانید کاراکترهای // را در هر نقطه از یک خط قرار دهید. جاوا اسکریپت تمام متن موجود در آن خط را که به دنبال // است به عنوان یک نظر در نظر می گیرد:


MyVariable="This is a test" // assigns text variable MyVariable

نظرات هنگام اجرای یک اسکریپت نادیده گرفته می شوند، بنابراین تأثیر زیادی روی سرعت اجرا ندارند. اکثر خطوط لوله ساخت، نظرات را قبل از ارسال کد از طریق سیم حذف می کنند.

هنگام نوشتن نظرات طولانی، بهتر است از دستور نظر جایگزین /* و */ استفاده کنید. متن بین این نویسه ها به عنوان یک نظر در نظر گرفته می شود:


/* This section checks to see if the Enter key is pressed…

then continues on */

از طرف دیگر، می‌توانید هر خط جدید را با یک // شروع کنید:


// This section checks to see if the Enter key is pressed…

// then continues on

نظرات از نظر فنی عباراتی در نظر گرفته نمی شوند، اما نحوه استفاده ما از آنها مشابه است، بنابراین من نحو را در اینجا گنجانده ام.

برای

از همه عناصر برنامه نویسی ساخت یافته، for یک قهرمان است. این به توسعه دهندگان این توانایی را می دهد که بر اساس یک شرایط، اقدامات را به طور مکرر انجام دهند. همراه با if، for جزء اساسی همه نرم افزارها است.

CodeSandbox پشتیبانی Rust را اضافه می کند

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


for (InitVal; Test; Increment) 
  • InitVal مقدار شروع حلقه for است. اغلب ۰ یا ۱ است، اما می تواند هر عددی باشد. InitVal عبارتی است که مقدار اولیه را تعیین می کند و آن را به یک متغیر اختصاص می دهد. برای مثال، count=0 یا i=1.
  • Test عبارتی است که توسط عبارت for برای کنترل تعداد دفعات تکرار حلقه استفاده می شود. تا زمانی که عبارت Test true باشد، حلقه ادامه می یابد. هنگامی که عبارت Test نادرست است، حلقه به پایان می رسد. به عنوان مثال، تا زمانی که مقدار متغیر count کمتر از ۱۰ باشد، count<10 درست است.
  • افزایش نشان می‌دهد که می‌خواهید حلقه for چگونه شمارش شود - بر اساس یک، دو، پنج، ده، و غیره. این نیز یک عبارت است و معمولاً به شکل countVar++ است، که در آن CountVar نام متغیری است که برای اولین بار در InitVal اختصاص داده شده است. به عنوان مثال، count++ مقدار متغیر count را برای هر تکرار یک عدد افزایش می‌دهد.

برخلاف تمام ساختارهای دیگر در جاوا اسکریپت، دستور for برای جداسازی آرگومان‌های خود به جای کاما از نیم‌ویرگول استفاده می‌کند. این همان نحوی است که در C، C++ و جاوا استفاده می شود.

در اینجا مثالی از یک حلقه for آورده شده است که از ۱ تا ۱۰ شمارش می شود و هر بار یک رقم پله می شود. در هر تکرار، اسکریپت مقداری متن را وارد می کند و یک خط جدید را شروع می کند. جاوا اسکریپتی که می خواهید تکرار کنید در داخل پرانتز ({ }) به دنبال عبارت for محصور شده است. این بلوک عبارت for را تشکیل می دهد. می توانید یک یا چند خط را در داخل نویسه های پرانتز ارائه دهید:


for (count=1; count<=10; count++) {
    console.log("Iteration: "+count);
}

به خاطر داشته باشید که count نام متغیر مورد استفاده برای ذخیره شمارنده حلقه for است. حلقه با ۱ شروع می شود و تا ۱۰ ادامه می یابد. عبارت آزمایشی count<=10 است، که می گوید:


Count is less than or equal to 10

تا زمانی که این عبارت درست باشد، حلقه for ادامه دارد. توجه داشته باشید که آرگومان Increment نیز یک عبارت است. در این مثال، Increment از متغیر count برای افزایش ۱ حلقه for برای هر تکرار استفاده می‌کند. با این حال، قانونی وجود ندارد که شما باید آن را به یک عدد افزایش دهید. در اینجا یک مثال آورده شده است که از ۱۰ تا ۱۰۰ با ده ها شمارش می شود:


for (count=1; count<101; count+=10) {
    document.write ("Iteration: "+count);
}

با حلقه for در جیب خود، ابزاری همه کاره و ماندگار برای یک عمر سفر در دنیای برنامه نویسی دارید.

برای…در

عبارت for…in نسخه خاصی از عبارت for است. این نحو برای نمایش نام ویژگی ها و/یا محتویات اشیاء استفاده می شود. هنگامی که با اشیاء داده JSON سروکار داریم، این امر رایج است.

برخلاف عبارت for، for…in از آزمایش‌های افزایشی یا عبارات دیگر استفاده نمی‌کند. شما نام یک متغیر نگهدارنده (نام متغیر بستگی به شما دارد) و شیئی که می خواهید استفاده کنید را ارائه می دهید. نحو اصلی اینجاست:


for (iterator in object) {
  statements
}
  • iterator نام یک متغیر است.
  • object شیئی است که می خواهید بررسی کنید.
  • گزاره‌ها یک یا چند دستورالعمل جاوا اسکریپتی هستند که می‌خواهید برای هر ویژگی بازگردانده شده توسط حلقه for…in اجرا کنید.

در اینجا یک مثال ساده از استفاده از for…in:

آورده شده است


const person = {
  name: "Harsha Suryanarayana",
  occupation: "Software Engineer"
};

for (let key in person) {
  console.log(`${key}: ${person[key]}`);
}

این برچسب‌های name و مشغله را به همراه مقادیر آنها خروجی می‌دهد.

ساخت مدل جزء برای Wasm

اگر...دیگر

عبارت if، همراه با else اختیاری آن، برای ساختن عبارت "if conditional" استفاده می شود. می گوید: اگر چیزی درست است، این کار را انجام دهید. دستور if یک عبارت شرطی نامیده می‌شود زیرا شرایط خاصی را آزمایش می‌کند. قوانین زیر هنگام استفاده از دستورات if…else اعمال می شود:

  • اگر عبارت درست باشد، اسکریپت دستورالعمل‌های زیر عبارت if را انجام می‌دهد.
  • اگر عبارت نادرست باشد، اسکریپت به دستورالعمل‌هایی می‌رود که از عبارت else پیروی می‌کنند.
  • اگر دستور else وجود نداشته باشد، اسکریپت به طور کامل از دستور if عبور کرده و از آنجا ادامه می‌یابد.

مانند for، if جزء اساسی نرم افزار است. توسعه دهندگان از آن برای انشعاب جریان کنترل به گونه ای استفاده می کنند که واضح و قابل درک باشد.

نحو برای if این است:


if (expression)

نتیجه عبارت if همیشه درست یا نادرست است. نحو زیر، بدون براکت هایی که بلوک ها را محصور می کنند، زمانی قابل قبول است که فقط یک دستورالعمل زیر دستورات if و else وجود داشته باشد:


if (test > 10)
    console.log(‘more than 10’);
else
    console.log(‘less than 10’);

می‌توانید این را حتی فشرده‌تر بنویسید، مانند:


if (test > 10) console.log("more than 10"); else console.log("less than 10");

اگر بیش از یک دستورالعمل از دستور if یا else پیروی کند، باید از براکت‌های فرفری (پرانتز) برای تعریف بلوک دستور if استفاده کنید. . جاوا اسکریپت می‌داند که همه دستورالعمل‌های داخل بلوک را اجرا کند:


if (test > 10) {
  count = 1;
  console.log("more than 10");
} else {
  count = 0; 
  console.log("less than 10");
}

همچنین می‌توانید بسیاری از عبارات if-else-if را به هم متصل کنید:


if (test > 10) {
  console.log("more than 10"); 
} else if (test == 10) {
  console.log("10"); 
} else {
  console.log("less than 10");

عملکرد

توابع یکی دیگر از بخش های اساسی برنامه نویسی ساخت یافته هستند. عبارت function به شما امکان می دهد توابع تعریف شده توسط کاربر خود و همچنین اشیا و روش های تعریف شده توسط کاربر را برای آنها ایجاد کنید. توابع، روال‌های مستقلی هستند که می‌توانند در جای دیگری در کد جاوا اسکریپت شما «فراموش شوند». همراه با حلقه ها و شرطی ها، توابع ابزاری ضروری برای سازماندهی نرم افزار هستند.

جاوا اسکریپت دارای یک سیستم عملکرد بسیار قدرتمند است که در آن توابع را می توان مانند هر متغیر دیگری ارجاع داد. این به عنوان "توابع درجه یک" شناخته می شود و منبع بزرگی از قدرت و انعطاف پذیری جاوا اسکریپت است.

در اینجا مثالی از کاربرد اساسی یک تابع آورده شده است:


function add(number1, number2){
  return number1 + number2;
}

می‌توانید این تابع را به این صورت فراخوانی کنید: add(10, 5).

به نوعی، توابع مانند پسوندهای سفارشی شده زبان جاوا اسکریپت هستند. آنها را می توان در هر جایی که از یک دستور استفاده می کنید استفاده کرد، و مقدار بازگشتی آنها شبیه به یک متغیر است: console.log(add(10,5)) عدد ۱۵ را به کنسول خروجی می دهد.

یک نحو دیگر برای تعریف توابع این است:


let multiply = function(number1, number2){ 
return number1 * number2; 
}

هر دوی این نحو رایج و قابل قبول هستند. همچنین عبارت تابع را به صورت درون خطی در JSON literals پیدا خواهید کرد:


let json = { 
    subtract: function (number1, number2){ 
        return number1 - number2;
    } 
}

می‌توانیم این تابع را با عملگر نقطه فراخوانی کنیم: json.subtract(10,5).

جدید

عبارت new در درجه اول برای ایجاد یک شی جدید استفاده می شود:


let myInstance  = new MyObject(params);
  • myInstance نام نمونه شیء جدید است. نام های قابل قبول مانند متغیرهای جاوا اسکریپت است. می توانید شی ایجاد شده را به عنوان یک متغیر جاوا اسکریپت در نظر بگیرید. (اشیاء در واقع انواع داده های سفارشی هستند.)
  • انواع شی (مانند MyObject) معمولاً CamelCase با حرف اول بزرگ هستند، در حالی که نمونه‌های شی (مانند myInstance) معمولا CamelCase هستند. em>camelCase، با حرف اول کوچک.
  • پارام‌ها یک یا چند پارامتر هستند که در صورت نیاز به تابع شی منتقل می‌کنید.
شروع کار با Azure OpenAI

روش های مختلفی برای ایجاد یک نوع شی در جاوا اسکریپت وجود دارد. برای مثال، می‌توانیم از نحو class و عبارت new برای ایجاد یک نمونه استفاده کنیم:


class Person {
  constructor(name) {
    this.name = name;
  }
}

let person = new Person("John");

بازگشت

عبارت return برای علامت گذاری پایان یک تابع استفاده می شود و به صورت اختیاری مقداری را برمی گرداند. هنگامی که جاوا اسکریپت با این عبارت روبرو می شود، به نقطه ای که تابع فراخوانی شده است "باز می گردد". عبارت return را می توان با و بدون مقدار بازگشتی استفاده کرد.

  • اگر مقداری گنجانده شود، تابع آن مقدار را برمی گرداند.
  • اگر هیچ مقداری درج نشود، تابع تعریف نشده برمی گردد.

عبارت return ممکن است خارج از یک تابع استفاده نشود. اگر سعی کنید از return خارج از یک تابع استفاده کنید، جاوا اسکریپت یک خطا گزارش می کند. در اینجا دو مثال از return، با و بدون مقدار آورده شده است:


function myFunc() { var outString = "This is a test"; return OutString; }
function myFunc() { outString = "This is a test"; return; }

در جاوا اسکریپت مدرن، گزینه های جالبی برای مدیریت مقادیر بازگشتی دارید. برای مثال، می‌توانید یک شی را برگردانید و از ساختارزدایی برای «انفجار» آن به مقادیر گسسته استفاده کنید:


function getUserInfo(name) {
  return { name, age: 25, city: "New York" };
}
const { name, age, city } = getUserInfo("Alice");
console.log(`${name} is ${age} years old and lives in ${city}`);

این

کلمه کلیدی this (از نظر فنی یک عبارت نیست) به شی فعلی اشاره دارد و مختصر برای استفاده از نام رسمی شی است. استفاده از this به شما ارجاع به "حوزه" فعلی کد می دهد. به این معنی که به شما یک دسته در تنظیمات بلافاصله بزرگتر که در آن متغیرها نگهداری می شوند، می دهد. تفاوت های ظریفی در نحوه رفتار و رفع این وجود دارد، به خصوص در مورد بسته شدن، اما به طور کلی، اگر به یاد داشته باشید که به شیء محفظه فوری اشاره دارد، مشکلی ندارید.

به عنوان یک مثال معمولی، تابع تفریق ما را از قبل در نظر بگیرید.


let json = { 
    subtract: function (number1, number2){ 
        console.log("this: " + this);
        return number1 - number2;
    } 
}

در این حالت، شی json خود تماس this را حل می‌کند و بنابراین خروجی کنسول این خواهد بود: this: [object Object].

var، let، const

عبارات var، let و const برای اعلام مرجع متغیر استفاده می‌شوند. توجه به این نکته مهم است که var یک سبک قدیمی است و به طور کلی به نفع let منسوخ شده است. این به این دلیل است که var متغیر را به بالای محدوده خود "بالابر" می‌کند، در حالی که let آن را به بلوک فعلی محدود می‌کند. در عین حال، عبارت const متغیری را ایجاد می کند که مفسر اجازه تغییر آن را نمی دهد (یعنی یک متغیر "غیرقابل تغییر").

یک مثال در اینجا آمده است:


let myVariable = “foo”;
const myOtherVariable = “bar”;

اکنون مرجع myOtherVariable قابل تغییر نیست.

اگرچه const از تغییر یک مرجع جلوگیری می کند، اما از تغییر اجزای داخلی یک شی یا آرایه جلوگیری نمی کند:


const myArray = {0,1,1,3,4};
myArray[2] = 2; // this is OK

در حالی که

عبارت while یک حلقه تکراری منحصر به فرد را تنظیم می کند که باعث می شود اسکریپت مجموعه ای از دستورالعمل ها را تکرار کند، مشابه for. تا زمانی که عبارت در عبارت while درست باشد، حلقه زدن ادامه می یابد. وقتی دستور while نادرست است، حلقه شکسته می شود و اسکریپت ادامه می یابد. هر کد جاوا اسکریپت در داخل بلوک دستور while - که با پرانتزها (aka براکت‌های فرفری) تعریف شده است - بخشی از حلقه در نظر گرفته می‌شود و تکرار می‌شود. نحو عبارت while در اینجا آمده است:


while (Expression)  {
    // stuff to repeat
}