Artikel ini akan memperkenalkan cara menggunakan fungsi JavaScript Math.random()
untuk menghasilkan nombor rawak dan membina fungsi yang boleh diguna semula untuk memohon kepada pelbagai senario, seperti memuatkan gambar rawak, pemilihan elemen rawak dari array, dan menghasilkan warna rawak. Surat, rentetan, frasa, dan kata laluan.
mata teras:
Math.random()
dalam JavaScript menghasilkan nombor titik terapung pseudo-random antara 0 (inklusif) dan 1 (tidak termasuk). Untuk menghasilkan nombor rawak lebih besar daripada 1, hanya kalikan hasilnya dengan faktor skala. Math.floor
untuk bulat. Untuk menjana bilangan bulat rawak dalam julat tertentu, tambahkan nilai minimum julat ke hasilnya. Math.random()
untuk menghasilkan imej rawak, warna, huruf, rentetan, frasa, dan kata laluan. Teknik -teknik ini boleh menambah elemen rawak ke program JavaScript anda. randomInt
, randomColor
dan randomString
) adalah blok bangunan untuk fungsi yang lebih kompleks, menunjukkan asas pengaturcaraan: menggunakan fungsi untuk mewujudkan fungsi yang lebih kompleks. Rawak dalam JavaScript
Malangnya, mewujudkan nilai rawak sebenar sebenarnya sangat sukar (kecuali jika anda dapat terdedah kepada bahan radioaktif ... atau monyet menggunakan papan kekunci). Untuk menyelesaikan masalah ini, bahasa pengaturcaraan menggunakan kaedah deterministik untuk menghasilkan nombor pseudo-rawak. Nombor -nombor ini kelihatan rawak, tetapi sebenarnya dihasilkan oleh fungsi yang menerima nilai benih berdasarkan peristiwa seperti masa atau kedudukan penunjuk tetikus.
JavaScript mempunyai fungsi
, yang merupakan kaedah dengan objek terbina dalam random
. Standard ECMAScript tidak menentukan bagaimana fungsi ini harus menghasilkan nombor rawak, jadi ia ditinggalkan kepada pengeluar penyemak imbas untuk dilaksanakan. Pada masa penulisan, semua pelayar utama kini menggunakan algoritma Xorshift128 di latar belakang untuk menghasilkan nombor pseudo-rawak. Math
dan ia akan mengembalikan nombor titik terapung pseudo-random antara 0 (inklusif) dan 1 (tidak termasuk): Math.random()
const x = Math.random();
<code>0 ≤ x < 1</code>
const y = Math.random() * 10;
<code>0 ≤ y < 10</code>
untuk mengelilingi nilai pulangan ke integer di bawah. Kod berikut memberikan integer rawak antara 0 dan 9 (termasuk) kepada pembolehubah Z: Math.floor
const z = Math.floor(Math.random() * 10);
kita boleh merumuskan kaedah ini untuk membuat fungsi yang akan kembali 0 ke (tetapi tidak termasuk) integer rawak antara nombor yang disediakan sebagai parameter:
const x = Math.random();
sekarang kita boleh menggunakan fungsi ini untuk mengembalikan nombor rawak antara 0 dan 9:
<code>0 ≤ x < 1</code>
jadi kita kini mempunyai cara untuk membuat bilangan bulat rawak. Tetapi bagaimana jika ia adalah antara dua nilai yang berbeza, bukannya selalu bermula dari sifar? Kami hanya perlu menggunakan kod di atas dan menambah nilai yang kami mahu julat bermula. Sebagai contoh, jika kita mahu menjana bilangan bulat rawak antara 6 dan 10 (termasuk), kita akan terlebih dahulu menjana bilangan bulat rawak antara 0 dan 4 menggunakan kod di atas, dan kemudian tambahkan 6 kepada hasilnya:
const y = Math.random() * 10;
Perhatikan bahawa untuk menghasilkan integer rawak antara 0 dan 4, kita sebenarnya perlu membiak dengan 5.
kita dapat merumuskan kaedah ini untuk membuat fungsi yang akan mengembalikan integer rawak antara dua nilai:
<code>0 ≤ y < 10</code>
Ini hanya bentuk kod umum yang kami tulis untuk mendapatkan nombor rawak antara 6 dan 10, tetapi ganti 6 dengan parameter min
dan 10 dengan parameter max
. Untuk menggunakannya, masukkan dua parameter untuk mewakili had bawah dan atas nombor rawak (termasuk). Oleh itu, untuk mensimulasikan dadu enam sisi bergulir, kita boleh menggunakan kod berikut untuk mengembalikan integer antara 1 dan 6:
const z = Math.floor(Math.random() * 10);
Selebihnya bahagiannya sama dengan teks asal. Harus diingat bahawa gambar -gambar perlu dipelihara dan disimpan dalam format asalnya.
Atas ialah kandungan terperinci Menjana nombor rawak dalam javascript dengan math.random (). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!