Deklarasi fungsi mendefinisikan sebuah fungsi dengan parameter-parameter yang ditentukan.
Fungsi juga dapat didefinisikan menggukanan konstruktor Function dan function expression.
Sintak
function name([param,[, param,[..., param]]]) {
[statements]
}
name- Nama dari fungsi.
param- Nama dari argumen yang akan dilewatkan kepada fungsi. Jumlah maksimal dari argumen berbeda-beda di setiap mesin.
statements- Statemen-statemen yang membentuk tubuh dari sebuah fungsi.
Deskripsi
Sebuah fungsi yang diciptakan dengan deklarasi fungsi adalah sebuah objek Function dan memiliki semua properti, method-method dan tingkah laku dari objek Function. Lihat Function untuk informasi mendetail tentang fungsi-fungsi.
Sebuah fungsi juga dapat diciptakan menggunakan sebuah ekspresi (lihat function expression).
Secara default, fungsi mengembalikan nilai undefined. Untuk mengembalikan nilai lain, fungsi tersebut harus memiliki sebuah return statement yang menentukan nilai untuk dikembalikan.
Fungsi yang dibuat secara kondisional
Fungsi dapat dideklarasikan secara kondisional, yaitu sebuah statement fungsi dapat disarangkan di dalam sebuah statement if. Kebanyakan aplikasi perambah selain Mozilla akan memperlakukan deklarasi kondisional seperti itu sebagai sebuah deklarasi non kondisional dan menciptakan fungsi tersebut meskipun kondisi bernilai benar atau salah, lihat artikel berikut untuk ikhtisar. Untuk alasan tersebut, deklarasi kondisional seharusnya tidak digunakan -- untuk pembuatakan kondisional gunakan ekspresi fungsi sebagai gantinya.
Pengangkatan deklarasi fungsi
Deklarasi fungsi di javaScript mengangkat definisi fungsi. Kamu dapat menggunakan fungsi sebelum kamu mendeklarasikan fungsi tersebut.
hoisted(); // logs "foo"
function hoisted() {
console.log('foo');
}
Dicatat bahwa function expressions tidak terangkat:
notHoisted(); // TypeError: notHoisted is not a function
var notHoisted = function() {
console.log('bar');
};
Contoh
Menggunakan fungsi
Kode berikut mendeklarasikan sebuah fungsi yang mengembalikan jumlah total penjualan ketika diberikan angka dari unit-unit yang terjual dari produk a, b, dan c.
function calc_sales(units_a, units_b, units_c) {
return units_a * 79 + units_b * 129 + units_c * 699;
}
Spesifikasi
| Specification | Status | Comment |
|---|---|---|
| ECMAScript Latest Draft (ECMA-262) The definition of 'Function definitions' in that specification. |
Draft | |
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Function definitions' in that specification. |
Standard | |
| ECMAScript 5.1 (ECMA-262) The definition of 'Function definition' in that specification. |
Standard | |
| ECMAScript 3rd Edition (ECMA-262) The definition of 'Function definition' in that specification. |
Standard | |
| ECMAScript 1st Edition (ECMA-262) The definition of 'Function definition' in that specification. |
Standard | Initial definition. Implemented in JavaScript 1.0. |
Kompabilitas Perambah
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| Allowed in sloppy mode | 49.0 | ? | ||||
| Trailing comma in parameters | ? | ? | 52.0 (52.0) | ? | ? | ? |
| Feature | Android | Android Webview | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
|---|---|---|---|---|---|---|---|---|
| Basic support | No support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| Allowed in sloppy mode | No support |
49.0 |
? |
49.0 |
||||
| Trailing comma in parameters | ? | ? | ? | 52.0 (52.0) | ? | ? | ? | ? |

