[1,2,3]. Die Länge kann 3, "123" erhalten. Die Länge kann auch 3 bekommen, und diejenigen, die JS ein wenig verstehen, wissen das.
Aber was wird bewerten? Länge, Regexp. Länge, "" .ToString. Länge, 1..Tostring. Länge ?
Holen Sie sich 1, 2, 0, 1. Was repräsentieren diese Zahlen?
Tatsächlich führt die Länge der Funktion zur Anzahl der formalen Parameter.
Nehmen wir ein kurzes Beispiel:
Funktionstest (a, b, c) {} test.length // 3Function Test (a, b, c, d) {} test.length // 4Ist es nicht sehr einfach, aber es gibt auch besondere. Wenn die Funktion Parameter durch Argumente aufruft, ohne die Parameter tatsächlich zu definieren, wird die Länge nur 0 erhalten.
Funktion test () {console.log (Argumente);} test.length // 0Diese Funktion kann in der Tat Parameter übergeben, und Parameter werden auch intern bezeichnet, aber die Länge kann die Anzahl der übergebenen Parameter nicht kennen.
Die tatsächlichen Parameter können nur durch Argumente erhalten werden. Länge, wenn die Funktion ausgeführt wird.
Funktion test () {console.log (Argumente.length);} Test (1,2,3); // Ausgabe 3test (1,2,3,4); // Ausgabe 4Daher kann die Länge Eigenschaft einer Funktion nur die Anzahl ihrer formalen Parameter erhalten, kann jedoch die Anzahl der realen Parameter nicht kennen.