Parameter fungsi JavaScript

Fungsi JavaScript tidak melakukan sebarang semakan pada nilai parameter.


Fungsi parameter eksplisit (Parameter) dan parameter tersirat (Argumen)

Dalam tutorial sebelumnya, Kami telah mempelajari tentang parameter eksplisit fungsi:

functionName(parameter1, parameter2, parameter3) {
// Kod untuk dilaksanakan...
}

Parameter eksplisit fungsi disenaraikan apabila fungsi ditakrifkan.

Parameter fungsi tersirat ialah nilai sebenar yang dihantar kepada fungsi apabila fungsi dipanggil.


Peraturan Parameter

Apabila fungsi JavaScript ditakrifkan, parameter yang dipaparkan tidak menyatakan jenis data.

Fungsi JavaScript tidak melakukan semakan jenis pada parameter tersirat.

Fungsi JavaScript tidak mengesan bilangan parameter tersirat.


Parameter lalai

Jika fungsi dipanggil tanpa Berikan parameter tersirat dan parameter akan ditetapkan secara lalai kepada: undefined

Kadangkala ini boleh diterima, tetapi disyorkan untuk menetapkan nilai lalai untuk parameter:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php中文网(php.cn)</title>
</head>
<body>
<p>设置参数的默认值。</p>
<p id="demo"></p>
<script>
    function myFunction(x, y) {
        if (y === undefined) {
            y = 0;
        }
        return x * y;
    }
    document.getElementById("demo").innerHTML = myFunction(4);
</script>
</body>
</html>

Jalankan atur cara dan cubalah


Atau, cara yang lebih mudah:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>设置函数参数默认值。</p>
<p id="demo"></p>
<script>
function myFunction(x, y) {
    y = y || 0;
    return x * y;
}
document.getElementById("demo").innerHTML = myFunction(4);
</script>
</body>
</html>

Jalankan atur cara dan cuba

Petua: Jika y telah ditakrifkan, y ||. mengembalikan y, kerana y adalah benar, jika tidak ia mengembalikan 0, kerana undefined adalah palsu.


Jika terlalu banyak parameter ditetapkan apabila fungsi dipanggil, parameter tidak akan dirujuk kerana nama parameter yang sepadan tidak dapat ditemui. Hanya boleh dipanggil menggunakan objek argumen.

Objek argumen

Fungsi JavaScript mempunyai objek argumen objek terbina dalam. Objek hujah

mengandungi tatasusunan parameter bagi panggilan fungsi.

Dengan cara ini anda boleh mencari nilai parameter terakhir dengan mudah:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>查找最大的数。</p>
<p id="demo"></p>
<script>
function findMax() {
    var i, max = 0;
    for(i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
} 
document.getElementById("demo").innerHTML = findMax(4, 5, 6);
</script>
</body>
</html>

Jalankan atur cara dan cuba

Atau buat fungsi untuk mengira jumlah semua nilai :

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>计算所有参数之和:</p>
<p id="demo"></p>
<script>
function sumAll() {
    var i, sum = 0;
    for(i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
} 
document.getElementById("demo").innerHTML =
sumAll(1, 123, 500, 115, 44, 88);
</script>
</body>
</html>

Jalankan atur cara dan cuba


Pas parameter mengikut nilai

Parameter yang dipanggil masuk fungsi tersebut ialah parameter tersirat bagi fungsi.

Parameter tersirat JavaScript diluluskan mengikut nilai: fungsi hanya mendapat nilai.

Jika fungsi mengubah suai nilai parameter, ia tidak mengubah suai nilai awal parameter eksplisit (ditakrifkan di luar fungsi).

Perubahan kepada parameter tersirat tidak kelihatan di luar fungsi.


Melalui parameter melalui objek

Dalam JavaScript, anda boleh merujuk objek nilai.

Jadi apabila kita mengubah suai sifat objek di dalam fungsi, nilai awalnya akan diubah suai.

Mengubah suai sifat objek boleh bertindak di luar fungsi (pembolehubah global).

Mengubah suai sifat objek boleh dilihat di luar fungsi.



Meneruskan pembelajaran
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>查找最大的数。</p> <p id="demo"></p> <script> function findMax() { var i, max = 0; for(i = 0; i < arguments.length; i++) { if (arguments[i] > max) { max = arguments[i]; } } return max; } document.getElementById("demo").innerHTML = findMax(4, 5, 6); </script> </body> </html>
  • Cadangan kursus
  • Muat turun perisian kursus