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 (ECMA-262) The definition of 'Function definitions' in that specification. |
Living Standard | |
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) | ? | ? | ? | ? |