تعریف توابع در جاوا اسکریپت سازندگان و جدید

تابع بلوکی از کد است که یک عمل را انجام می دهد یا مقداری را برمی گرداند. توابع کد سفارشی هستند که می توانند مجددا استفاده شوند. بنابراین، به لطف توابع، برنامه ها ماژولار و سازنده تر می شوند.

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

تعریف تابع

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

تابع nameOfFunction() (
// کدی که باید اجرا شود
}

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

همانطور که متوجه شده اید، مقدار پارامتر name در کد اختصاص داده نمی شود، این کار زمانی انجام می شود که تابع فراخوانی شود. هنگام فراخوانی تابع، نام کاربری به عنوان آرگومان ارسال می شود. آرگومان مقدار واقعی است که به تابع (در این مورد نام کاربری، به عنوان مثال 8host) ارسال می شود.

// تابع greet را با "8host" به عنوان آرگومان فراخوانی کنید
greet("8host");

مقدار 8host از طریق پارامتر name به تابع ارسال می شود. اکنون پارامتر name این مقدار را در این تابع نشان خواهد داد. کد فایل greetUser.js به شکل زیر است:

// عملکرد خوشامدگویی سفارشی را راه اندازی کنید
تابع سلام (نام) (
console.log(` سلام، $(name)!`);
}
// تابع greet را با "8host" به عنوان آرگومان فراخوانی کنید
greet("8host");

با اجرای این برنامه، خروجی زیر را دریافت خواهید کرد:

اکنون می دانید که چگونه از یک تابع استفاده مجدد کنید.

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

برگرداندن مقادیر

شما می توانید از بیش از یک پارامتر در یک تابع استفاده کنید. می توانید چندین مقدار را به یک تابع ارسال کنید و یک مقدار را برگردانید. برای مثال یک فایل sum.js ایجاد کنید و تابعی را در آن اعلام کنید که مجموع دو مقدار x و y را پیدا کند.

// مقدار اولیه تابع افزودن
تابع add(x,y) (
بازگشت x + y;
}

add(9, 7);

این کد تابعی را با پارامترهای x و y تعریف می کند. سپس تابع مقادیر 9 و 7 را دریافت می کند. برنامه را اجرا کنید:

برنامه مقادیر به دست آمده 9 و 7 را اضافه می کند و نتیجه 16 را برمی گرداند.

چه موقع باید استفاده کرد کلمه کلیدیبازگشت، اجرای تابع متوقف می شود و مقدار عبارت را برمی گرداند. در این حالت، مرورگر مقدار را در کنسول نمایش می دهد، اما این مانند استفاده از console.log() برای خروجی به کنسول نیست. هنگام فراخوانی، یک تابع مقداری را به جایی که از آن فراخوانی شده است، خروجی می دهد. این مقدار را می توان استفاده کرد یا در یک متغیر قرار داد.

عبارات تابع

در قسمت قبل، تابعی را اعلام کردید که دو عدد را جمع کرده و مقدار حاصل را برمی گرداند. همچنین می توانید با اختصاص دادن یک تابع به یک متغیر، یک عبارت تابع ایجاد کنید.

از تابع قبلی برای اعمال مقدار حاصل به متغیر مجموع استفاده کنید.

// تابع add را به ثابت جمع اختصاص دهید
const sum = تابع add(x, y) (
بازگشت x + y;
}
// برای یافتن مجموع تابع را فراخوانی کنید
sum(20, 5);
25

حالا مجموع ثابت یک تابع است. این عبارت را می توان با تبدیل آن به یک تابع ناشناس کوتاه کرد (این همان چیزی است که توابع بدون پارامتر نام نامیده می شوند). در حال حاضر تابع add نامیده می شود، اما در عبارات تابع معمولاً نام آن حذف می شود.

// تابع را به مجموع ثابت اختصاص دهید
const sum = تابع (x, y) (
بازگشت x + y;
}
// برای یافتن مجموع تابع را فراخوانی کنید
sum(100, 3);
103

حالا تابع دیگر نامی ندارد، ناشناس شده است.

عبارات تابع نامگذاری شده را می توان برای اشکال زدایی استفاده کرد.

توابع پیکان

تا به حال توابع با استفاده از کلمه کلیدی تابع تعریف می شدند. با این حال، یک روش جدیدتر و مختصرتر برای تعریف یک تابع وجود دارد - توابع پیکان ECMAScript 6. توابع پیکان با علامت مساوی و به دنبال آن علامت بزرگتر نشان داده می شوند: =>.

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

// تابع ضرب را تعریف کنید
const ضرب = (x, y) => (
بازگشت x * y;
}

ضرب (30، 4);
120

به جای نوشتن تابع، می توانید به سادگی از نمادهای => استفاده کنید.

اگر تابع فقط یک پارامتر داشته باشد، پرانتزها را می توان حذف کرد. در مثال زیر، تابع x را مربع می کند، بنابراین فقط به یک عدد به عنوان آرگومان نیاز دارد.

// تابع مربع را تعریف کنید
مربع مستمر = x => (
بازگشت x * x;
}
// برای یافتن محصول، تابع را فراخوانی کنید
مربع (8);
64

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

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

// تابع مربع را تعریف کنید
const مربع = x => x * x;
// برای یافتن محصول، تابع را فراخوانی کنید
مربع (10);
100

نتیجه

این آموزش شما را با اعلان توابع، عبارات تابع و توابع فلش، برگرداندن مقادیر و تخصیص مقادیر تابع به متغیرها.

تابع بلوکی از کد است که مقداری را برمی‌گرداند یا عملی را انجام می‌دهد.

برچسب ها:

متغیرها و ثابت ها در جاوا اسکریپت اعلان متغیرها و تخصیص مقادیر به آنها. متغیرهای جهانی و محلی استفاده از ثابت ها

اعلان متغیرها در جاوا اسکریپت

نام متغیرها در جاوا اسکریپت می تواند شامل حروف، اعداد، علامت $ و علامت _ باشد و نام متغیر نمی تواند با یک عدد شروع شود. به خاطر داشته باشید که جاوا اسکریپت به حروف بزرگ و کوچک حساس است و متغیرهای a1 و A1 متغیرهای متفاوتی هستند. استفاده از سیریلیک توصیه نمی شود، اگرچه ممکن است.
متغیرها در جاوا اسکریپت با کلمه کلیدی var اعلان می شوند:

Var Peremennaya_1 var Peremennaya_2

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

تخصیص مقادیر به متغیرها

اختصاص یک مقدار به متغیرهای اعلام شده در جاوا اسکریپت:

Peremennaya_1 = 25 Peremennaya_2 = "متن اختصاص داده شده در گیومه های مستقیم قرار دارد"

شما می توانید بلافاصله پس از اعلان یک مقدار به متغیرها اختصاص دهید:

Var Peremennaya_1 = 25 var Peremennaya_2 = "متن اختصاص داده شده در گیومه های مستقیم محصور شده است"

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

متغیرهای محلی و جهانی

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

اگر متغیری خارج از توابع اعلان شده باشد، در این صورت است جهانی استو در تمام توابع داخل صفحه در دسترس (قابل مشاهده) خواهد بود. وقتی صفحه بسته می شود، متغیرهای سراسری در جاوا اسکریپت از بین می روند.

ثابت ها در جاوا اسکریپت

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

Var DRUG_CHELOVEKA = "سگ"

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

در جاوا اسکریپت، ثابت ها را می توان به عنوان متغیر بازنویسی کرد، اما اگر این کار را انجام دهید، معنای ثابت ها از بین می رود.

در این مقاله نحوه تعیین را یاد خواهید گرفت ثابت ها در جاوا اسکریپت با استفاده از کلمه کلیدی const.

ES6راه جدیدی برای اعلام ثابت ها با استفاده از یک کلمه کلیدی ارائه می دهد پایان. کلمه کلیدی پایانیک ارجاع به یک مقدار فقط خواندنی ایجاد می کند.

Const VARIABLE_NAME = مقدار;

با توافق، شناسه های ثابت جاوا اسکریپت با حروف بزرگ هستند.

کلمه کلیدی پایانشبیه یک کلید است کلمه اجازهبه این صورت که متغیرهایی با محدوده بلوک ایجاد می کند، اما مقادیر با آن اعلام می شود const، قابل تغییر نیست.

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

اجازه دهید v = 10;
v = 20;
v = v + 5;
console.log(v); // 35

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

مالیات بر هزینه = 0.1;
مالیات = 0.2 ; //TypeError

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

Const RED; // اشتباه نوشتاری

همانطور که قبلا ذکر شد، مانند متغیرهای اعلام شده با کلمه کلیدی اجازه دهید، متغیرهای اعلام شده با کلمه کلیدی نتیجه،دارای محدوده بلوک

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

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

نام این متغیر به این دلیل است که مقدار آن در حین اجرای برنامه قابل تغییر است.

ثابت ها

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

قبل از اینکه بتوان از یک ثابت استفاده کرد، باید آن را اعلام کرد. ثابت ها با استفاده از کلمه کلیدی const و به دنبال آن نام ثابت اعلام می شوند. برای تشخیص ثابت ها از متغیرها در کد برنامه، قرار شد نام ثابت ها با حروف بزرگ نوشته شود:

Const MAX = 10;

هنگامی که یک ثابت ایجاد شد، تلاش برای تعریف مجدد آن به یک متغیر یا تلاش برای اختصاص یک مقدار به یک ثابت موجود، باعث خطا می شود.

چرا متغیرها و ثابت ها مورد نیاز هستند؟

متغیرها و ثابت ها به شما کمک می کنند کد برنامهواضح تر بیایید به یک مثال کوچک نگاه کنیم:

مجموع قیمت = 2.42 + 4.33; // قیمت کل

اعداد اینجا می تواند هر چیزی را معنی کند. برای اینکه مشخص شود دقیقاً چه چیزی در اینجا خلاصه می شود، می توان مقدار 2.42 را به متغیر (یا ثابت) candyPrice (قیمت آب نبات) و 4.33 را به متغیر (یا ثابت) oilPrice (قیمت نفت) نسبت داد:

مجموع قیمت = آب نبات قیمت + روغن قیمت;

اکنون، به جای یادآوری معنی این مقادیر، می توانید ببینید که اسکریپت قیمت آب نبات را به قیمت کره اضافه می کند.

همچنین، متغیرها و ثابت ها به صرفه جویی در زمان هنگام اشکال زدایی یک اسکریپت کمک می کنند. به جای استفاده از یک لفظ یکسان در همه جا، می توانید آن را به یک متغیر (یا ثابت) در ابتدای اسکریپت اختصاص دهید و سپس از متغیر (یا ثابت) به جای لفظ در بقیه کد اسکریپت استفاده کنید. اگر بعداً تصمیمی برای تغییر مقدار گرفته شود ، تغییرات در کد باید نه در چندین مکان بلکه فقط در یک مکان - جایی که مقدار به متغیر (یا ثابت) اختصاص داده شده است.

محدوده ثابت ها

قوانین مشابهی برای ثابت ها اعمال می شود که برای متغیرهای اعلام شده با کلمه کلیدی let:

Const MAX = 5; // ثابت جهانی ( const MAX = 10; // Block console.log ثابت (MAX); // 10 ) console.log(MAX); // 5 foo(); // 15 console.log(MAX); // 5 تابع foo() ( const MAX = 15; // Console.log ثابت محلی (MAX)؛ )

ثابت ها و انواع مرجع

هنگامی که به یک ثابت مقداری از نوع مرجع اختصاص داده می شود، ارجاع به مقدار تغییرناپذیر می شود و خود مقدار نیز قابل تغییر می ماند:

Const obj = (a: 5); obj.a = 10; console.log(obj.a); // 10

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

مثالی از اعلام یک ثابت با استفاده از یک متغیر:

var DAYSINWEEK = 7;

var DAYSINWEEK = 7 ;

این هم خطرناک و هم غیرعملی است، زیرا به شما امکان می‌دهد هر زمان که بخواهید مقدار متغیر DAYSINWEEK را در اسکریپت خود تغییر دهید. توسعه دهندگان راه های مختلفی برای تشخیص متغیرهایی که ظاهراً ثابت هستند از متغیرهای معمولی در جاوا اسکریپت ارائه کرده اند، از نامگذاری متغیرها با حروف بزرگ (بهترین روش) تا راه حل هایی که بعداً در مورد آنها صحبت خواهم کرد. خوشبختانه، در آخرین نسخه ECMAScript (مشخصاتی که یک استاندارد است) این ثابت را معرفی کرد:

جاوا اسکریپت. شروع سریع

const DAYSINWEEK = 7;

const DAYSINWEEK = 7 ;

و اکنون می توان به DAYSINWEEK به عنوان یک متغیر دسترسی داشت، اما هرگز نمی توانید مقدار آن را تغییر دهید:

console.log (DAYSINWEEK); > 7 روز در هفته = 8; > خطا

کنسول. ورود به سیستم (DAYSINWEEK)؛

DAYSINWEEK = 8 ;

> خطا

هنگامی که یک ثابت اعلام شد (ثابت ها باید با کلمه کلیدی const مقداردهی اولیه شوند، به دنبال آن یک نام ثابت که از قوانین نامگذاری متغیر پیروی می کند)، نام آن رزرو می شود: دیگر نمی توانید یک متغیر DAYSINWEEK را نامگذاری کنید و ثابتی با همان نام داشته باشید. ، یا برعکس.

کلمه کلیدی const دارد پشتیبانی خوبدر مرورگرهای مدرن: IE11 و Spartan، Firefox 31+، Opera 12+، Safari 5.1.7+، iOS 7 و بالاتر، همراه با Chrome 36+. با این حال، چند نکته مهم وجود دارد:

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

جاوا اسکریپت. شروع سریع

اصول اولیه جاوا اسکریپت را با یک مثال عملی از نحوه ایجاد یک برنامه وب بیاموزید.

ثابت ها ایجاد نمی شوند منطقه جدیدقابلیت مشاهده در Webkit آن ها ثابت ها می توانند خارج از محدوده فعلی قابل مشاهده باشند.

فایرفاکس 35 و پایین تر به شما امکان می دهد مقدار یک const را در لحظه تغییر دهید. این مشکل در Firefox 36+ برطرف شده است.

همچنین لازم به ذکر است که مشکلات Webkit تنها در صورت عدم استفاده از حالت سخت (که در مقاله آینده مورد بحث قرار خواهد گرفت) رخ می دهد.

آیا اکنون می توان از کلمه کلیدی const در پروژه های واقعی استفاده کرد؟

انتخاب اینکه آیا از کلمه کلیدی const در کد خود استفاده کنید یا نه به عوامل مختلفی بستگی دارد: مهمترین چیز این است که بازدیدکنندگان سایت شما از چه نسخه هایی از مرورگرها استفاده می کنند، زیرا استفاده از کلمه کلیدی const در مرورگرهایی مانند IE10 به عنوان یک خطا در نظر گرفته می شود. . اگر می خواهید از کلمه کلیدی const در توسعه استفاده کنید، اما آماده استفاده از آن در پروژه های واقعی نیستید، چندین گزینه دارید:

گزینه 1: استفاده از ترانسپایلر ("transpiler")

Transpilers، همانطور که از نام آن پیداست، کد شما را در زمان کامپایل به زبان دیگری تبدیل می‌کند: در این مورد، از نسخه مشخصات ES6 (که کلمه کلیدی const را معرفی کرد) به ES5. این به شما امکان می دهد کدهای بیشتری بنویسید نسخه جدیدزبان، اما پروژه واقعی از نسخه ای استفاده می کند که با طیف وسیع تری از مرورگرها سازگار است. ادی عثمانی آهنگسازی کرد