تعداد بازدید: 2995

توابع پر کاربرد در جاوا اسکریپت

توابع بخشی از برنامه ما است که نامی مشخص دارد و وظیفه ای را انجام می دهد. تابع نوع کوچکتری از Procedure ها یا routin هاست.

In computer programming The function is named section of program that do special task.

هر تابع می تواند به ازای یک مشخصه اتفاق بیفتد ، به طور مثال یک درخواست (Request Handler) یا واقعه ای (Event Handler) خاص. در نرم افزار های مختلف می تواند واقعه متفاوت باشد به طور مثال در لاراول Event و در وردپرس Hook و در جاوا اسکریپت Event می باشد.

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

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

# regular function Type 1
function myFunction() { }
# regular function Type 2
va myFunction = function () { }
# Arrow Function 
myFunction = () => {}

توابع پر کاربرد JavaScript

توابع در زبان های برنامه نویسی از منظر کاربرد آن ها به چندین دسته تقسیم می شوند. برخی از توابع در طول زمان depricate می شوند که در استفاده های بعدی باید Notice به توسعه دهنده نمایش دهد.

هر داده جاوا اسکریپتی یک سری Properties و Methods دارد که روی آن ها اجرا می شود. مثلا داده های از نوع String یک سری Properties و Methods دارند . داده های Array , Object , Math نیز به همین منوال . پس توابعی که روی آن ها اجرا می شوند از نوع متد هستند.

JavaScript String Functions

متدهایی که روی یک رشته اعمال می شود ( توابع مرتبط با رشته ها که روی یک متغیر از نوع رشته اعمال می شود ). هر متغیر از نوع رشته دارای یک سری Property  نظیر length و یک سری Method می باشد. برخی از پرکاربرد ترین این متد ها را بررسی می کنیم.

search : جستجو یک رشته در یک رشته دیگر و برگرداندن موقعیت اولین جایی که رشته را پیدا کرد.این متد یک ورودی رشته ای که باید جستجو شود را می گیرد:

var string = "please repeat and repeat";
var needle = "repeat";
string.search(needle);   //7

replace : این متد قسمتی از یک رشته را با رشته جدید جایگزین می کند. پارامتر اول این متد رشته قابل جستجو و پارامتر دوم نیز رشته ای که باید جایگزین گردد می باشد.

var string = "learn jquery";
var newString = string.replace("jquery","javascript");
newString = "learn javascript";

trim : فضای خالی اطراف یک رشته را پاک می کند ( فضای خالی سمت چپ و سمت راست )

var str = "       Hello World!        ";
console.log(str.trim()); //Hello World!

match : این متد یک عبارت منظم را روی یک رشته چک می کند . برای ایجاد عبارت منظم می توان از کلاس RegExp نیز استفاده کرد.

var str = "The rain in SPAIN stays mainly in the plain";
var res = str.match(/ain/g);

JavaScript Array Functions

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

map : این تابع تمامی المان های یک آرایه را می پیماید عملیات خاصی به ازای هر یک از آن ها انجام می دهد (یک تابع را روی تک تک المان های یک آرایه مپ می کند) . این تابع یک تابع دریافت می کند که پارامتر اول آن المان آرایه و الزامی و پارامتر دوم آن index آرایه و اختیاری می باشد :

a = ["abolfazl","atiyeh","sahar","mina"];
var b = a.map((name,index) => {
    return index + "-" + name;
});
//b = ["0-abolfazl","1-atiyeh","2-sahar","3-mina"]

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

var age = [32,17,26,27,29];
let gratherThan = age.filter((age)=>{
	return age > 26;
});
gratherThan = [32, 27, 29]

در مثال دوم می خواهیم در آرایه ای از نام ها نام های شبیه به ali را بر گردانیم. کد زیر برای جستجو در یک آرایه کاربرد دارد :

var users = ["alireza","mohamadali","abolfazl","bratali"];
var regex = new RegExp("ali");
var likeAli = users.filter((name) => {
	return name.match(regex);
});
//likeAli = ["alireza", "mohamadali", "bratali"]

کلاس RegExp یک عبارت مشابه ورودی خود می سازد که در تابع match که از رشته گرفته می شود استفاده می شود.

تابع push یک المان را به انتهای یک آرایه اضافه می کند و تابع pop آخرین المان آرایه را حذف می کند. همچنین طول یک آرایه با length مشخص می شود.

JavaScript Math Functions

این توابع روی شئ Math فراخوانی می شوند . شئ Math از پیش تعریف شده است و یک سری Properties و Methods دارد. Property های آن مثلا برای بدست آوردن عدد PI به شکل Math.PI عمل می کنیم.

با استفاده از متد ceil یک عدد را به بالا رند می کنیم و با استفاده از متد floor یک عدد را به پایین رند می کنیم و با استفاده از تابع round یک عدد را با توجه به مقدار اعشار آن که بیشتر یا کمتر از نصف است رند می کنیم :

var a = 2.3;
Math.ceil(a);  //3
Math.floor(a); //2
Math.round(a); //2
Math.trunc(a); //2

تفاوت trunc , round در این است که اگر اعشار عدد نیم باشد در round به بالا رند می کند و در trunc به پایین رند می کند. مثلا ۲.۵ در trunc برابر ۲ و در round برابر ۳ است.

random : این تابع یک عدد بین 0 تا 1 ایجاد می کند که اگر آن را در عدد خاصی ضرب کنیم یک عدد کوچکتر از عدد ضرب شده می دهد . با استفاده از این تابع عدد رندم ایجاد می کنیم :

console.log(Math.floor(Math.random() * 10)); // [0-9]
console.log(Math.ceil(Math.random() * 10));  // [1-10]

 

مطالب مشابه

Javascript Variable Scope – Mutable

هر statement بر اساس جایگاهی از کد که در آن قرار گرفته است سطح دسترسی به سایر قسمت های کد دارد که به آن Scope می گوییم....

Math and Arithmetic logic in JavaScript

اعداد در برنامه نویسی کاربردهای بسیار زیادی دارند. مهم ترین شناسه یک موجودیت یک عدد است که به آن Identifier می گوییم که...

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

2 دیدگاه برای توابع پر کاربرد در جاوا اسکریپت

  1. سلام.
    من مفهوم وجود function های موجود در متدهایی مثل setTimeout(function(){
    و یا then(function(){}
    رو در نمیکنم، چرا وقتی setTimeout که خودش یک متد هست باید داخلش function نوشته بشه!؟ و اصولاً این نوع function های بدون نام چکاره اند؟

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *