یکی از زبان ها محبوب این روزها زبان جاوا اسکریپت است. یکی از قابلیت های جالب این زبان امکان برنامه نویسی اعلانی است بر خلاف برنامه نویسی دستوری. اما منظور از برنامه نویسی اعلانی چیست؟ چه تفاوتی با برنامه نویسی دستوری دارد؟ در ادامه سعی می کنیم ضمن معرفی چند تابع پرکاربرد در جاوا اسکریپت این دو مفهوم را معرفی کنیم. در این روش ما دقیقا به کامپیوتر بیان می کنیم چه الگوریتمی را باید اجرا کند تا به خروجی مورد نظر دست یابیم. به عنوان مثال می خواهیم حاصل جمع عناصر یک آرایه را بدست بیاوریم. در روش دستوری از کدی مشابه کد زیر استفاده می کنیم: با توسعه زبان های برنامه نویسی به سمت و سوی زبان های سطح بالاتر می رویم زبان های برنامه نویسی سطح بالا بسیاری از فرایند های پر تکرار را فرموله کرده اند فرایندهایی از قبیل پیمایش آرایه ها، مرتب سازی آرایه ها جستجو و. در زبان های جدید به جای این که به کامپیوتر بگوییم چه بکند می گوییم چه می خواهیم به عنوان مثال برنامه فوق به صورت زیر باز نویسی می شود: برنامه تفاوت دو کد یاد شده در این است که در این کد ما به کامپیوتر می گوییم می خواهیم حاصل جمع مقادیر آرایه ها را بر گرداند. جزییات کار بر عهده زبان برنامه نویسی است. برتری روش اعلانی به روش دستوری این است که معمولا حجم کد کمتر، خوانایی کد بیشتر و سرعت اجرا بعضا بیشتر است. فرض کنید آرایه ای از اشیا را داریم و می خواهیم از بین عناصر آنها برخی را فیلتر نماییم به عنوان مثال آرایه به صورت زیر در اختیار داریم حال اگر بخواهیم آرایه را به گونه ای فیلتر کنیم که فقط عناصر که مقدار صفت faction آن برابر" Rebels " را برگرداند برای این منظور می توانیم از تابع filter و کدی همانند کد زیر استفاده نماییم: var rebels = pilots . filter ( function ( pilot ) { return pilot . faction =" Rebels "; } var pilots = [{ id : , name : " Wedge Antilles ", faction : " Rebels ", } { id : , name : " Ciena Ree ", faction : " Empire ", } { id : , name : " Iden Versio ", faction : " Empire ", } { id : , name : " Thane Kyrell ", faction : " Rebels ", }] ; گاهی لازم است بر روی همه عناصر آرایه عملیاتی اجرا شود و نتیجه برگردانده شود مثال فرض کنید آرایه فوق را در اختیار داریم و بخواهیم یکی از صفات اشیا مثال faction را حذف کنیم برای این کار می توانیم از دستورات زیر استفاده کنیم: var rebels = pilots . map ( function ( pilot ) { return { id : pilot . id , name : pilot . name } گاهی می خواهیم عملیاتی تجمیعی بر روی تمامی عناصر یک آرایه انجام دهیم و نتیجه را استخراج کنیم عملیاتی مانند جمع کردن مقادیر یک صفت، پیدا کردن مقدار ماکزیمم یا مینیمم یک صفت و. در این شرایط می توانیم از تابع reduce استفاده کنیم. مثال فرض کنید بخواهیم حاصل جمع مقدار id عناصر آرایه فوق را بدست آوریم در این شرایط می توانیم از دستورات زیر استفاده کنیم: