Tutorial JS

JS RUMAH Pengenalan JS JS Dimana Keluaran JS Pernyataan JS Sintaks JS Komentar JS Variabel JS JS Let JS Const Operator JS JS Aritmatika Tugas JS Tipe Data JS Fungsi JS Objek JS Acara JS String JS Metode String JS Pencarian String JS Template String JS Nomor JS Metode Nomor JS JS Array Metode Array JS Sortir Array JS Iterasi Array JS JS Array Const Tanggal JS Format Tanggal JS Metode Dapatkan Tanggal JS Metode Penetapan Tanggal JS JS Matematika JS Acak JS Boolean Perbandingan JS Ketentuan JS Beralih JS JS Loop Untuk JS Loop Untuk Masuk JS Loop Untuk Of JS Loop Sementara Istirahat JS JS Iterable JS Set Peta JS Tipe JS Konversi Tipe JS JS Bitwise JS RegExp Kesalahan JS Lingkup JS Pengangkatan JS Mode Ketat JS JS Kata Kunci ini Fungsi Panah JS Kelas JS JS JSON Debug JS Panduan Gaya JS Praktik Terbaik JS Kesalahan JS Kinerja JS Kata-kata Cadangan JS

Versi JS

Versi JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Tepi Sejarah JS

Objek JS

Definisi Objek Properti Objek Metode Objek Tampilan Objek Aksesor Objek Konstruktor Objek Prototipe Objek Obyek Iterable Set Objek Peta Objek Referensi Objek

Fungsi JS

Definisi Fungsi Parameter Fungsi Panggilan Fungsi Panggilan Fungsi Fungsi Terapkan Penutupan Fungsi

Kelas JS

Perkenalan Kelas Warisan Kelas Kelas Statis

JS Asinkron

Panggilan Balik JS JS Asinkron JS Janji JS Async/Menunggu

JS HTML DOM

Pengenalan DOM Metode DOM Dokumen DOM Elemen DOM HTML DOM Formulir DOM CSS DOM Animasi DOM Acara DOM Pendengar Acara DOM Navigasi DOM Node DOM Koleksi DOM Daftar Node DOM

JS Browser BOM

Jendela JS Layar JS Lokasi JS Sejarah JS JS Navigator Peringatan Munculan JS Waktu JS JS Cookies

JS Web API

Pengantar API Web API Formulir Web API Riwayat Web API Penyimpanan Web API Pekerja Web API Pengambilan Web API Geolokasi Web

JS AJAX

Pengenalan AJAX AJAX XMLHttp Permintaan AJAX Tanggapan AJAX File XML AJAX AJAX PHP AJAX ASP Basis Data AJAX Aplikasi AJAX Contoh AJAX

JS JSON

Perkenalan JSON Sintaks JSON JSON vs XML Tipe Data JSON Penguraian JSON Stringify JSON Objek JSON Array JSON Server JSON JSON PHP JSON HTML JSON JSONP

JS vs jQuery

Pemilih jQuery jQuery HTML jQuery CSS jQuery DOM

Grafik JS

Grafik JS JS Kanvas JS Plotly JS Chart.js Bagan Google JS JS D3.js

Contoh JS

Contoh JS JS HTML DOM Masukan HTML JS Objek HTML JS Acara HTML JS JS Browser Editor JS Latihan JS kuis JS Sertifikat JS

Referensi JS

Objek JavaScript Objek DOM HTML


Definisi Fungsi JavaScript


Fungsi JavaScript didefinisikan dengan functionkata kunci.

Anda dapat menggunakan deklarasi fungsi atau ekspresi fungsi .


Deklarasi Fungsi

Sebelumnya dalam tutorial ini, Anda telah mempelajari bahwa fungsi dideklarasikan dengan sintaks berikut:

function functionName(parameters) {
  // code to be executed
}

Fungsi yang dideklarasikan tidak langsung dieksekusi. Mereka "disimpan untuk digunakan nanti", dan akan dieksekusi nanti, ketika mereka dipanggil (dipanggil).

Contoh

function myFunction(a, b) {
  return a * b;
}

Titik koma digunakan untuk memisahkan pernyataan JavaScript yang dapat dieksekusi. Karena deklarasi
fungsi bukanlah pernyataan yang dapat dieksekusi, tidak umum untuk mengakhirinya dengan titik koma.


Ekspresi Fungsi

Fungsi JavaScript juga dapat didefinisikan menggunakan ekspresi .

Ekspresi fungsi dapat disimpan dalam variabel:

Contoh

const x = function (a, b) {return a * b};

Setelah ekspresi fungsi disimpan dalam variabel, variabel dapat digunakan sebagai fungsi:

Contoh

const x = function (a, b) {return a * b};
let z = x(4, 3);

Fungsi di atas sebenarnya adalah fungsi anonymous (fungsi tanpa nama).

Fungsi yang disimpan dalam variabel tidak memerlukan nama fungsi. Mereka selalu dipanggil (dipanggil) menggunakan nama variabel.

Fungsi di atas diakhiri dengan titik koma karena merupakan bagian dari pernyataan yang dapat dieksekusi.



Fungsi() Konstruktor

Seperti yang Anda lihat pada contoh sebelumnya, fungsi JavaScript didefinisikan dengan functionkata kunci.

Fungsi juga dapat didefinisikan dengan konstruktor fungsi JavaScript bawaan yang disebut Function().

Contoh

const myFunction = new Function("a", "b", "return a * b");

let x = myFunction(4, 3);

Anda sebenarnya tidak harus menggunakan konstruktor fungsi. Contoh di atas sama dengan penulisan:

Contoh

const myFunction = function (a, b) {return a * b};

let x = myFunction(4, 3);

Sebagian besar waktu, Anda dapat menghindari penggunaan newkata kunci dalam JavaScript.


Pengangkatan Fungsi

Sebelumnya dalam tutorial ini, Anda belajar tentang "mengangkat" ( JavaScript Hoisting ).

Mengangkat adalah perilaku default JavaScript untuk memindahkan deklarasi ke bagian atas cakupan saat ini.

Pengangkatan berlaku untuk deklarasi variabel dan deklarasi fungsi.

Karena itu, fungsi JavaScript dapat dipanggil sebelum dideklarasikan:

myFunction(5);

function myFunction(y) {
  return y * y;
}

Fungsi yang didefinisikan menggunakan ekspresi tidak diangkat.


Fungsi Self-Invoking

Ekspresi fungsi dapat dibuat "memanggil sendiri".

Ekspresi self-invoking dipanggil (dimulai) secara otomatis, tanpa dipanggil.

Ekspresi fungsi akan dijalankan secara otomatis jika ekspresi diikuti oleh ().

Anda tidak dapat memanggil sendiri deklarasi fungsi.

Anda harus menambahkan tanda kurung di sekitar fungsi untuk menunjukkan bahwa itu adalah ekspresi fungsi:

Contoh

(function () {
  let x = "Hello!!";  // I will invoke myself
})();

Fungsi di atas sebenarnya adalah fungsi self-invoking anonim (fungsi tanpa nama).


Fungsi Dapat Digunakan sebagai Nilai

Fungsi JavaScript dapat digunakan sebagai nilai:

Contoh

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3);

Fungsi JavaScript dapat digunakan dalam ekspresi:

Contoh

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3) * 2;

Fungsi adalah Objek

Operator typeofdalam JavaScript mengembalikan "fungsi" untuk fungsi.

Tapi, fungsi JavaScript paling baik digambarkan sebagai objek.

Fungsi JavaScript memiliki properti dan metode .

Properti arguments.lengthmengembalikan jumlah argumen yang diterima saat fungsi dipanggil:

Contoh

function myFunction(a, b) {
  return arguments.length;
}

Metode toString()mengembalikan fungsi sebagai string:

Contoh

function myFunction(a, b) {
  return a * b;
}

let text = myFunction.toString();

Sebuah fungsi didefinisikan sebagai properti dari suatu objek, disebut metode untuk objek.
Sebuah fungsi yang dirancang untuk membuat objek baru, disebut konstruktor objek.


Fungsi Panah

Fungsi panah memungkinkan sintaks pendek untuk menulis ekspresi fungsi.

Anda tidak memerlukan functionkata kunci, returnkata kunci, dan tanda kurung kurawal .

Contoh

// ES5
var x = function(x, y) {
  return x * y;
}

// ES6
const x = (x, y) => x * y;

Fungsi panah tidak memilikinya sendiri this. Mereka tidak cocok untuk mendefinisikan metode objek .

Fungsi panah tidak diangkat. Mereka harus didefinisikan sebelum digunakan.

Menggunakan const lebih aman daripada menggunakan var, karena ekspresi fungsi selalu bernilai konstan.

Anda hanya dapat menghilangkan returnkata kunci dan tanda kurung kurawal jika fungsinya adalah pernyataan tunggal. Karena itu, mungkin kebiasaan yang baik untuk selalu menjaganya:

Contoh

const x = (x, y) => { return x * y };

Fungsi panah tidak didukung di IE11 atau sebelumnya.