[1,2,3]. O comprimento pode obter 3, "123". O comprimento também pode obter 3. Qualquer pessoa que entenda JS sabe disso.
Mas o que avaliará, regexp.length, "" .toString.Length, 1..toString.Length Get?
Obtenha 1, 2, 0 e 1, respectivamente. O que esses números representam?
Esta é uma pergunta que muitos novos amigos do grupo estão fazendo. De fato, o comprimento da função é o número de parâmetros formais.
Vamos dar um breve exemplo:
A cópia do código é a seguinte:
teste de função (a, b, c) {}
test.length // 3
teste de função (a, b, c, d) {}
test.length // 4
Não é muito simples, mas também existem especiais. Se o parâmetro for chamado internamente por meio de argumentos e nenhum parâmetro real for definido, o comprimento só receberá 0.
A cópia do código é a seguinte:
function test () {console.log (argumentos);}
test.length // 0
Essa função pode realmente passar os parâmetros e os parâmetros também são chamados internamente, mas o comprimento não pode saber o número de parâmetros passados.
Os parâmetros reais só podem ser obtidos através de argumentos. Comprimento quando a função é executada.
A cópia do código é a seguinte:
function test () {console.log (argumentos.length);}
teste (1,2,3); // Saída 3
teste (1,2,3,4); // saída 4
Portanto, a propriedade de comprimento de uma função pode obter apenas o número de seus parâmetros formais, mas não pode saber o número de parâmetros reais.