Tutorial JavaScript ini menjelaskan cara menggunakan fungsi matematika yang disebut max() dengan sintaks dan contoh
Keterangan
Dalam JavaScript, max() adalah fungsi yang digunakan untuk mengembalikan nilai terbesar dari angka yang diberikan sebagai parameter. Karena fungsi max() adalah fungsi statis dari objek Math, maka harus dipanggil melalui objek placeholder yang disebut Math
Sintaksis
Dalam JavaScript, sintaks untuk fungsi max() adalah
Math.max([number1, number2, .. number_n]);Parameter atau Argumen
angka1, angka2,. number_nOpsional. Angka-angka yang akan dievaluasi untuk menentukan nilai terbesarPengembalian
Fungsi max() mengembalikan nilai terbesar dari angka yang diberikan
Jika tidak ada parameter yang diberikan, fungsi max() akan mengembalikan -Infinity
Jika salah satu parameter yang diberikan bukan angka, fungsi max() akan mengembalikan NaN
Catatan
- Math adalah objek placeholder yang berisi fungsi matematika dan konstanta yang salah satunya adalah max()
Contoh
Mari kita lihat contoh cara menggunakan fungsi max() di JavaScript
Sebagai contoh
console.log(Math.max(10, 20)); console.log(Math.max(10, 20, 30)); console.log(Math.max(-2, -4, -6, -8));_Dalam contoh ini, kami telah memanggil fungsi max() menggunakan kelas Math
Kami telah menulis output dari fungsi max() ke log konsol browser web, untuk tujuan demonstrasi, untuk menunjukkan apa yang dikembalikan oleh fungsi max()
Berikut ini akan ditampilkan ke log konsol browser web
20 30 -2Dalam contoh ini, keluaran pertama ke log konsol mengembalikan 20 yang merupakan nilai terbesar dari 10 dan 20
Output kedua ke log konsol mengembalikan 30 yang merupakan nilai terbesar dari 10, 20 dan 30
Output ketiga ke log konsol mengembalikan -2 yang merupakan nilai terbesar -2, -4, -6 dan -8
Menggunakan fungsi max() untuk menemukan Nilai Terbesar dalam Array
Terakhir, kita akan melihat bagaimana menggunakan fungsi max() untuk menemukan nilai terbesar dalam sebuah array
Sebagai contoh
var totn_array = [5, 10, 15, 20, 25]; console.log(Math.max(...totn_array));Berikut ini akan ditampilkan ke log konsol browser web
25_Dalam contoh ini, metode max() mengembalikan 25 yang merupakan nilai terbesar dari array yang disebut totn_array. Array ini terdiri dari 5 elemen dengan nilai numerik. 5, 10, 15, 20 dan 25
Seperti semua hal, JavaScript memiliki batasan. Menariknya ada batasan buatan dan kemudian ada batasan fisik. Saya akan mengeksplorasi batas-batas ini dan mencoba dan mendorong mereka sebanyak mungkin ke batas mereka yang sebenarnya
Dalam JavaScript, sebuah Angka ditentukan oleh w3schools. com sebagai
Tidak seperti banyak bahasa pemrograman lainnya, JavaScript tidak mendefinisikan berbagai jenis angka, seperti bilangan bulat, pendek, panjang, floating-point, dll
Nomor JavaScript selalu disimpan sebagai angka floating point presisi ganda, mengikuti standar IEEE 754 internasional
Format ini menyimpan angka dalam 64 bit, dimana angka (pecahan) disimpan dalam bit 0 hingga 51, eksponen dalam bit 52 hingga 62, dan tanda masuk bit 63
Apa artinya ini secara praktis? . 7976931348623157e+308, atau menggunakan Nomor. MAX_VALUE;
Hal-hal mulai menjadi aneh ketika kita mencoba melampaui titik ini. Saya mencoba menjalankan kode di bawah ini mengharapkan "Infinity". Itu tidak terjadi
console.log(Number.MAX_VALUE+1);1.7976931348623157e+308Ini tidak sesuai dengan dokumentasi yang menyatakan “Angka yang lebih besar dari MAX_VALUE direpresentasikan sebagai tak terhingga. ”
Catatan tambahan. Tes di bawah ini dilakukan dengan menggunakan konsol Google Chrome, sehingga juru bahasa JS lainnya mungkin memberikan hasil yang berbeda
Saya kemudian menemukan angka maksimum yang bukan Infinity
console.log(Number.MAX_VALUE+999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999);1.7976931348623157e+308_Jika kita menambahkan ekstra "1" seperti di bawah ini
console.log(Number.MAX_VALUE+9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991);InfinityKami sekarang mendapatkan Infinity. Jadi apa yang terjadi?
Sekarang mari kita bicara tentang Angka. MAX_SAFE_INTEGER, yang didefinisikan sebagai
Konstanta Number.MAX_SAFE_INTEGER mewakili bilangan bulat aman maksimum dalam JavaScript (2⁵³-1)
Penjelasan praktisnya adalah bahwa apa pun di luar batas ini, juru bahasa JavaScript tidak lagi bertanggung jawab atas pengoperasiannya
Lihatlah kode di bawah ini
console.log(Number.MAX_SAFE_INTEGER);9007199254740991console.log(Number.MAX_SAFE_INTEGER+1);
9007199254740992let a = Number.MAX_SAFE_INTEGER+1;
let b = Number.MAX_SAFE_INTEGER+2;
console.log(a === b);
true_
Dari hasil di atas, kami melihat bahwa kami pasti dapat melampaui “MAX_SAFE_INTEGER”, tetapi apa pun yang ingin kami lakukan dari sudut pandang praktis tidak lagi berfungsi. Baik "a" dan "b" dianggap sama, padahal kita tahu sebenarnya tidak
Bagaimana jika kita ingin melampaui MAX_SAFE_INTEGER?
JavaScript memiliki fungsi asli yang disebut BigInt. Seperti yang dijelaskan namanya, ini menangani angka besar. Ini juga sangat mudah untuk diaktifkan. Tambahkan "n" ke akhir nomor dan langsung dikonversi
typeof theBiggestInt;
"bigint"_
Jadi mengapa tidak menggunakan "BigInt" saja setiap saat? . Hasil tangkapan?
Ini berarti bahwa jika Anda mengonversi dari Angka ke BigInt dan mundur lagi, Anda dapat kehilangan presisi. Ada juga tangkapan kompatibilitas karena hanya browser modern yang mendukungnya. Ini sebenarnya bukan masalah karena kemungkinan besar hanya akan dibutuhkan di NodeJS, yang didukung
Kami sekarang akan mencoba MAX_VALUE kami yang sebelumnya mengalami masalah dan membungkus hasilnya di dalam BigInt
console.log(BigInt(Number.MAX_VALUE));179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368nconsole.log(BigInt(Number.MAX_VALUE+1));
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368n
Contoh di atas menunjukkan apa yang sedang terjadi. Saat kami menambahkan lebih banyak ke Angka. MAX_VALUE, diabaikan begitu saja. Kedua persamaan menghasilkan jawaban yang sama. Mengapa?
Apa yang bisa kita lakukan sekarang adalah menggunakan BigInt untuk melampaui Angka. MAX_VALUE. Kali ini, kita akan menggunakan peningkatan terhadap nilai BigInt dari MAX_VALUE, bukan hasil dari MAX_VALUE. Di bawah ini, perhatikan posisi “+1n” pada tanda kurung dibandingkan dengan kode di atas
console.log(BigInt(Number.MAX_VALUE)+1n);179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858369n
Seperti yang bisa kita lihat di atas, angka terakhir kita telah meningkat menjadi "9" dari "8". Jadi BigInt berfungsi seperti yang dijelaskan. Mari kita coba perbandingan kita
let ab = BigInt(Number.MAX_VALUE);let bb = BigInt(Number.MAX_VALUE)+1n;
console.log(ab === bb);
false
Seperti yang bisa kita lihat, kita bisa melakukan perbandingan di atas Angka. Batas MAX_VALUE, dengan kelemahan karena tidak dapat menggunakan tempat desimal
BigInt memang memiliki batasan, namun tidak ada "batas keras" atas atau bahkan "batas lunak" apa pun. Dokumentasi tidak menyebutkannya. Dari pengalaman orang lain di StackOverflow, tampaknya batasannya diatur oleh juru bahasa JavaScript dan juga batasan memori perangkat. Ada juga kinerja yang mencolok saat mencapai angka yang sangat besar
Singkatnya, dimungkinkan untuk melampaui batas nomor asli JavaScript pada kesempatan langka yang Anda perlukan. Salah satu contohnya adalah jika Anda ingin menemukan bilangan prima karena ini tidak memerlukan tempat desimal
Dalam kebanyakan kasus, meskipun Anda tidak perlu menggunakan BigInt, tetapi Anda ingin memastikan bahwa Anda tidak melampaui batas asli dengan membandingkannya dengan Number. MAX_SAFE_INTEGER jika Anda tahu Anda mungkin mencapai angka itu