Langkau ke kandungan
WANCODE
EN

Function

15 minitPemulaHTML · CSS · JS

Dalam pelajaran ini

  • Isytihar dan panggil function dengan parameter
  • Terangkan perbezaan antara return dan console.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.

Input masuk, badan function dijalankan, satu output keluar semula.
JavaScript
// 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: 3 dan 2.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

JavaScript
function double(n) {
  console.log(n * 2);
}
const x = double(5); // prints 10
console.log(x + 1);  // NaN — x is undefined!

Memulangkan

JavaScript
function double(n) {
  return n * 2;
}
const x = double(5); // x is 10
console.log(x + 1);  // 11

Arrow 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.

JavaScript
// 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 return

Skop: siapa boleh lihat apa

JavaScript
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

  • addServiceCharge memulangkan nombor
  • Menambah 10% dan membundarkan kepada 2 perpuluhan
  • Konsol tidak lagi memaparkan RMundefined

Uji kefahaman

Q1

function greet() { console.log("Hai"); } — apakah nilai const x = greet();?

Q2

Dalam function area(w, h) { return w * h; } dan area(3, 4), apakah 3 dan 4?

Q3

Variable total dicipta dengan const di dalam function. Bolehkah kod di luar function menggunakan total?

Apa yang anda pelajari

  • Isytihar dengan function name(params) { ... } atau const name = (params) => ...; panggil dengan name(args).
  • return menyerahkan nilai kembali kepada kod anda; console.log hanya menunjukkannya kepada anda. Tiada return bermaksud undefined.
  • Uruskan kes hujung dahulu dengan return awal.
  • Variable di dalam function kekal di dalam (skop). Hantar data masuk melalui parameter dan keluarkannya dengan return.
Pratonton

Output konsol daripada kod anda akan dipaparkan di sini.

Langkah 1 daripada 3