[1,2,3]. La longitud puede obtener 3, "123". La longitud también puede obtener 3, y aquellos que entienden un poco lo saben un poco.
Pero lo que eval. longitud, regexp. longitud, "" .tostring. longitud, 1..Tostring. longitud ?
Obtenga 1, 2, 0, 1 respectivamente. ¿Qué representan estos números?
De hecho, la longitud de la función da como resultado el número de parámetros formales.
Tomemos un breve ejemplo:
prueba de función (a, b, c) {} test.length // 3function test (a, b, c, d) {} test.length // 4¿No es muy simple, pero también hay otros especiales? Si la función llama a los parámetros a través de argumentos sin definir realmente los parámetros, la longitud solo obtendrá 0.
función test () {console.log (argumentos);} test.length // 0De hecho, esta función puede pasar parámetros, y los parámetros también se llaman internamente, pero la longitud no puede saber el número de parámetros pasados.
Los parámetros reales solo se pueden obtener a través de argumentos. longitud cuando se ejecuta la función.
función test () {console.log (argumentos.length);} test (1,2,3); // Salida 3test (1,2,3,4); // Salida 4Por lo tanto, la propiedad de longitud de una función solo puede obtener el número de sus parámetros formales, pero no puede saber el número de parámetros reales.