[1,2,3]. Panjang bisa mendapatkan 3, "123". Panjang juga bisa mendapatkan 3. Siapa pun yang mengerti JS mengetahui hal ini.
Tapi apa yang akan eval.length, regexp.length, "" .tostring.length, 1..tostring.length get?
Dapatkan 1, 2, 0, dan 1 masing -masing. Apa yang diwakili oleh angka -angka ini?
Ini adalah pertanyaan yang ditanyakan oleh banyak teman baru dalam grup. Bahkan, panjang fungsi adalah jumlah parameter formal.
Mari kita ambil contoh singkat:
Salinan kode adalah sebagai berikut:
tes fungsi (a, b, c) {}
test.length // 3
tes fungsi (a, b, c, d) {}
test.length // 4
Bukankah itu sangat sederhana, tetapi ada juga yang istimewa. Jika parameter disebut secara internal melalui argumen dan tidak ada parameter aktual yang didefinisikan, panjang hanya akan mendapatkan 0.
Salinan kode adalah sebagai berikut:
test fungsi () {console.log (argumen);}
test.length // 0
Fungsi ini memang dapat melewati parameter, dan parameter juga disebut secara internal, tetapi panjang tidak dapat mengetahui jumlah parameter yang dilewati.
Parameter aktual hanya dapat diperoleh melalui argumen. Panjang ketika fungsi dieksekusi.
Salinan kode adalah sebagai berikut:
function test () {console.log (arguments.length);}
tes (1,2,3); // output 3
tes (1,2,3,4); // output 4
Oleh karena itu, properti panjang suatu fungsi hanya dapat memperoleh jumlah parameter formal, tetapi tidak dapat mengetahui jumlah parameter nyata.