Function
15 minitPemulaHTML · CSS · JS
Dalam pelajaran ini
- ▸Isytihar dan panggil function dengan parameter
- ▸Terangkan perbezaan antara
returndanconsole.log - ▸Tulis arrow function
- ▸Tahu variable mana yang boleh dilihat oleh function (skop)
Idea utama
Function membolehkan kita kumpulkan arahan dan jalankan bila diperlukan. Beri ia input, ia memulangkan output — seperti sebuah mesin.
Anda sudah pun menggunakan function: console.log(...), Math.round(...), name.trim(). Seseorang menulisnya sekali, dan kini semua orang boleh memanggilnya. Sekarang anda akan menulis function anda sendiri.
// declare: the recipe (nothing runs yet)
function teaPrice(cups, pricePerCup) {
return cups * pricePerCup;
}
// call: actually run it, with real values
const total = teaPrice(3, 2.8); // 8.4 (well, 8.399999999999999 — remember lesson 3!)
console.log(teaPrice(1, 2.8)); // 2.8- Parameter
- Nama pemegang tempat dalam pengisytiharan:
cups,pricePerCup. Seperti variable yang hanya wujud di dalam function. - Argument
- Nilai sebenar yang anda hantar semasa memanggil:
3dan2.8. Argumen mengisi parameter mengikut urutan. - return
- Menyerahkan nilai kembali kepada pemanggil function, dan menghentikan function itu serta-merta.
return vs console.log
Ini kekeliruan paling biasa bagi pemula. console.log menunjukkan nilai kepada anda, si developer — kemudian nilai itu hilang. return memberikan nilai itu kembali kepada kod anda, supaya ia boleh disimpan, digunakan dalam kira-kira, atau dihantar kepada function lain. Function tanpa return memulangkan undefined.
Hanya mencetak
function double(n) {
console.log(n * 2);
}
const x = double(5); // prints 10
console.log(x + 1); // NaN — x is undefined!Memulangkan
function double(n) {
return n * 2;
}
const x = double(5); // x is 10
console.log(x + 1); // 11Arrow function
Arrow function ialah cara lebih ringkas untuk menulis function, disimpan dalam const. Jika badannya satu ungkapan sahaja, anda boleh buang { } dan return — nilai itu dipulangkan secara automatik.
// all three do the same thing
function square(n) {
return n * n;
}
const square2 = (n) => {
return n * n;
};
const square3 = (n) => n * n; // short form: implicit returnSkop: siapa boleh lihat apa
const shop = "Kedai Kopi WAN"; // outside: visible everywhere below
function receipt(amount) {
const line = shop + ": RM" + amount; // inside can see outside ✔
return line;
}
console.log(receipt(5));
console.log(line); // ReferenceError: line is not defined ✘Variable yang dicipta di dalam function (termasuk parameternya) hanya wujud di dalam { } function itu — itulah skopnya. Kod di dalam boleh membaca variable dari luar, tetapi bukan sebaliknya. Ini memastikan function kemas: kerja kiranya tidak bocor ke bahagian lain program anda. Lebih baik hantar nilai sebagai parameter daripada mencapai variable di luar.
Konsol mencetak nombor yang betul, kemudian With service charge: RMundefined. Fikirkan kenapa, kemudian betulkan addServiceCharge supaya ia memulangkan harga ditambah 10%. Bundarkan hasilnya kepada 2 tempat perpuluhan dengan helah Math.round(x * 100) / 100 dari pelajaran 3, supaya addServiceCharge(12.5) memberi tepat 13.75 (bukan 13.750000000000002).
Semakan
addServiceChargememulangkan nombor- Menambah 10% dan membundarkan kepada 2 perpuluhan
- Konsol tidak lagi memaparkan
RMundefined
Uji kefahaman
Apa yang anda pelajari
- ✓Isytihar dengan
function name(params) { ... }atauconst name = (params) => ...; panggil denganname(args). - ✓
returnmenyerahkan nilai kembali kepada kod anda;console.loghanya menunjukkannya kepada anda. Tiadareturnbermaksudundefined. - ✓Uruskan kes hujung dahulu dengan
returnawal. - ✓Variable di dalam function kekal di dalam (skop). Hantar data masuk melalui parameter dan keluarkannya dengan
return.
Output konsol daripada kod anda akan dipaparkan di sini.