Fungsi kata kunci digunakan untuk mendefinisikan fungsi.
Salinan kode adalah sebagai berikut:
// Fungsi Definisi Deklaratif:
fungsi funcname ([arg1 [, args [..., argn]]]) {
pernyataan
}
// Definisi Ekspresi Fungsi:
var funcname = fungsi ([arg1 [, args [..., argn]]]) {
pernyataan
};
Perhatikan bahwa kawat gigi keriting dalam pernyataan fungsi diperlukan, bahkan jika tubuh fungsi hanya berisi satu pernyataan.
Dalam JavaScript, fungsi adalah contoh khusus kelas fungsi. Dan mereka semua memiliki sifat dan metode seperti jenis referensi lainnya.
Nama fungsi sebenarnya adalah pointer ke objek fungsi, dan fungsi dapat digunakan sebagai parameter untuk berpartisipasi dalam transfer parameter dan nilai pengembalian.
Sifat objek fungsi
Karena suatu fungsi adalah instance suatu fungsi, nama fungsi hanyalah alamat referensi dari instance tersebut. Oleh karena itu, dapat digunakan sebagai parameter dan nilai pengembalian dalam proses transfer parameter fungsi.
Salinan kode adalah sebagai berikut:
function call_some_function (some_function, some_argument) {
return some_function (some_argument);
}
fungsi add_10 (num) {
mengembalikan num + 10;
}
console.log (call_some_function (add_10,20)); // 30
Sifat internal suatu fungsi
argumen | ini
• Objek argumen memegang parameter yang diteruskan ke fungsi
• Argumen. Panjang Mengembalikan jumlah parameter yang masuk
• Catatan: Atribut panjang mewakili jumlah parameter yang diterima secara default ketika fungsi didefinisikan. Argumen. Panjang mewakili jumlah parameter yang diterima ketika fungsi sebenarnya dieksekusi.
Salinan kode adalah sebagai berikut:
function test_arguments () {
if (arguments.length == 2) {
console.log (argumen.length);
console.log (argumen);
} kalau tidak {
console.log (argumen.length);
console.log (argumen);
argumen.callee (4, 5);
};
} (1, 2, 3)
/**
3
{'0': 1, '1': 2, '2': 3}
2
{'0': 4, '1': 5}
**/
• Argumen.Callee () terutama digunakan dalam situasi di mana fungsi itu sendiri disebut dalam fungsi rekursif. Perbedaan antara JS dan bahasa lain adalah bahwa nama fungsi hanyalah penunjuk dan dapat diubah kapan saja. Nama fungsi dalam fungsi ini sangat digabungkan, yang dapat menyebabkan masalah, dan panggilan untuk argumen. Callee () sendiri akan menghindari masalah ini.
Salinan kode adalah sebagai berikut:
function factorial (num) {
if (num <= 1) {
kembali 1;
} kalau tidak {
return num * factorial (num - 1);
};
}
fungsi callee_f (num) {
if (num <= 1) {
kembali 1;
} kalau tidak {
return num * argumen.callee (num - 1);
};
}
faktorial (10); // beroperasi normal
f = faktorial;
faktorial = null;
f (10); //kesalahan
callee_f (10); // beroperasi secara normal
f = callee_f;
callee_f = null;
f (10); // beroperasi normal
• Ini terutama digunakan untuk membantu fungsi merujuk pada objek dalam ruang lingkup fungsi.
Salinan kode adalah sebagai berikut:
var color = 'red';
fungsi syacolor () {
console.log (this.color);
}
Syacolor (); //merah
var o = objek baru ();
o.color = 'biru';
O.SayColor = SayColor;
o.saycolor (); //biru
call () dan apply ()
call () dan apply () adalah metode sendiri yang dikandung setiap fungsi. Telah disebutkan sebelumnya bahwa fungsi adalah objek yang ditentukan, jadi ketika fungsi panggilan, ini dalam fungsi adalah panggilan ke variabel saat ini dan lebih rendah. Jika Anda ingin mengubah ruang domain tempat fungsi dieksekusi, Anda dapat menggunakan panggilan () dan menerapkan () untuk mengimplementasikannya.
Salinan kode adalah sebagai berikut:
warna = 'merah';
var o = {warna: 'biru'};
fungsi katacolor () {
console.log (this.color);
}
SayColor (); //merah
waycolor.call (ini); //merah
waycolor.call (o); //biru
Fungsi APP () dan Call () adalah sama, dan perbedaannya terutama perbedaan dalam parameter yang masuk.
Panggil (ini, paragraf, prar2, prar3) Parameter pertama adalah ruang lingkup fungsi yang akan dieksekusi. Parameter selanjutnya adalah parameter input fungsi, dan ada begitu banyak kali ditulis secara berurutan.
Terapkan (ini, [para1, para2, prara3]) Parameter pertama juga merupakan ruang lingkup fungsi yang akan dieksekusi, diikuti oleh objek array array.
Manfaat terbesar menggunakan panggilan ()/apply () untuk memperluas ruang lingkup adalah decoupling objek dan metode.
Objek bawaan
Objek global dapat dipahami sebagai objek terluar, semua objek, serta atribut dan metode yang bukan milik objek lain termasuk dalam objek global.
* isnan (x) digunakan untuk memeriksa apakah parameter x adalah angka. Jika false dikembalikan untuk nomor, kembalikan true sebaliknya
* isfinite (x) digunakan untuk memeriksa apakah parameter x tidak terbatas/kecil. Jika tidak terbatas/kecil, ia kembali benar.
* Parseint (x) digunakan untuk menguraikan string dan mengembalikan bilangan bulat
* parsefloat (x) digunakan untuk parse string dan mengembalikan nomor titik mengambang
* encodeuri () dan encodeuricomponent () akan melakukan pengkodean UTF-8 khusus pada string, menghindari beberapa karakter khusus untuk dipahami oleh browser. Perbedaan utama di antara mereka adalah bahwa encodeuri () tidak mengkodekan karakter khusus yang dimiliki oleh URI, sedangkan Encodeuricomponent () mengkode semua karakter non-standar yang ditemukannya.
Salinan kode adalah sebagai berikut:
var uri = "http://www.wrox.com/illegal value.htm#start";
//http://www.wrox.com/illegal%20value.htm#start
Console.log (encodeuri (URI))
//http%3a%2f%2fwww.wrox.com%2Fillegal%20Value.htm%23Start
Console.log (Encodeuricomponent (URI))
• Fungsi decoding yang sesuai adalah decodeuri () dan decodeuricomponent ()
• Eval (skrip) digunakan untuk menjalankan konten skrip di penerjemah dan mengembalikan hasil yang sesuai. Sangat kuat!
Catatan: Di browser, objek Windows merangkum objek global dan melakukan banyak tugas dan fungsi tambahan.
Objek matematika adalah objek bawaan lainnya. Menyediakan fungsi perhitungan matematika untuk JavaScript.
Di atas adalah semua tentang artikel ini. Saya harap Anda menyukainya dan itu akan membantu Anda.