[1,2,3]. La longueur peut obtenir 3, "123". La longueur peut également en obtenir 3, et ceux qui comprennent un peu JS le savent un peu.
Mais qu'est-ce qui va évaluer. longueur, regexp. longueur, "" .tostring. longueur, 1..tostring. longueur ?
Obtenez respectivement 1, 2, 0, 1. Que représentent ces chiffres?
En fait, la longueur de la fonction entraîne le nombre de paramètres formels.
Prenons un bref exemple:
Test de fonction (a, b, c) {} test.length // 3Function test (a, b, c, d) {} test.length // 4N'est-ce pas très simple, mais il y en a aussi des spéciaux. Si la fonction appelle les paramètres via des arguments sans définir réellement les paramètres, la longueur n'obtiendra que 0.
fonction test () {console.log (arguments);} test.length // 0Cette 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 par des arguments. longueur lorsque la fonction est exécutée.
fonction test () {console.log (arguments.length);} test (1,2,3); // Sortie 3Test (1,2,3,4); // Sortie 4Par 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.