Parameter fungsi JavaScript

Parameter Fungsi JavaScript

Fungsi JavaScript tidak melakukan sebarang semakan pada nilai parameter.

Parameter eksplisit fungsi (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 memberikan parameter tersirat, parameter akan ditetapkan kepada tidak ditentukan secara lalai

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

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</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>

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:

Kod sumber:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</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>

Atau buat fungsi untuk mengira jumlah semua nilai:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</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>

Melalui parameter mengikut nilai

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

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 nilai objek.

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 kelihatan di luar fungsi.


Meneruskan pembelajaran
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </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>