جاوا اسکریپت اساساً برای برنامهنویسی تابعی (functional programming) ساخته شده است، بدان معنا که در این زبان توابع از انواع دادهای درجهیک محسوب میشوند. همانگونه که میتوانید مقدار یک متغیر را از نوع عدد یا رشته یا شیء تعیین کنید، میتوانید یک تابع را بهعنوان مقدار به آن اختصاص دهید.
توابع در جاوا اسکریپت بر دو نوع هستند: توابع سازنده و توابع معمولی. منظور از توابع سازنده آن است که میتوان آنها را با عملگر new فراخوانی کرد. در این صورت، تابع یک شیء جدید ایجاد میکند و آن را پس از آغازش (initialization) برمیگرداند. نوع دیگر توابع، توابع معمولی هستند که مقدار برگشتی آنها هر چیزی میتواند باشد.
باید دانست که در جاوا اسکریپت توابع جزئی از اشیا محسوب میشوند. به عبارت دیگر، هر تابع یک شیء نیز هست و میتوان مانند هر شیء دیگری خصلتهای مختلفی را برای آن تعریف کرد. خصلتهایی که روی تابع سازنده تعریف میشوند، تا حدودی همانند فیلدهای استاتیک در زبان جاوا هستند. البته بر خلاف زبان جاوا، این خصلتها از طریق اشیای نمونهی ساخته شده از تابع سازنده قابل دسترسی نیستند و باید حتماً بر روی خود شیء تابع مورد دستیابی قرار گیرند.
ویژگی دیگر توابع در زبان جاوا اسکریپت آن است که تعداد آرگومانهای تابع در زبان جاوا اسکریپت انعطافپذیر است. مثلاً اگر تابعی نیاز به دو پارامتر داشته باشد، شما میتوانید تعداد بیشتری پارامتر نیز به آن بدهید و پارامترهای اضافی صرفاً مورد صرفنظر قرار خواهند گرفت. به همین ترتیب، اگر کمتر از حد لازم به تابع پارامتر بدهید، برای آرگومانهای دیگر مقدار تعریف نشده در نظر گرفته خواهد شد.