[1,2,3] .Length peut obtenir 3, "123" .Length peut également obtenir 3. Quiconque comprend JS le sait.
Mais qu'est-ce qui va évaluer, regexp.length, "" .tostring.length, 1..tostring.length get?
Obtenez respectivement 1, 2, 0 et 1. Que représentent ces chiffres?
C'est une question que de nombreux nouveaux amis du groupe ont posés. En fait, la longueur de la fonction est le nombre de paramètres formels.
Prenons un bref exemple:
La copie de code est la suivante:
Test de fonction (a, b, c) {}
test.length // 3
Test de fonction (a, b, c, d) {}
test.length // 4
N'est-ce pas très simple, mais il y en a aussi des spéciaux. Si le paramètre est appelé interne via des arguments et qu'aucun paramètre réel n'est défini, la longueur n'obtiendra que 0.
La copie de code est la suivante:
fonction test () {console.log (arguments);}
test.length // 0
Cette fonction peut en effet transmettre des paramètres et les paramètres sont également appelés en interne, mais la longueur ne peut pas connaître le nombre de paramètres passés.
Les paramètres réels ne peuvent être obtenus que via des arguments.
La copie de code est la suivante:
fonction test () {console.log (arguments.length);}
test (1,2,3); // Sortie 3
test (1,2,3,4); // Sortie 4
Par conséquent, la propriété de longueur d'une fonction ne peut obtenir que le nombre de ses paramètres formels, mais ne peut pas connaître le nombre de paramètres réels.