[1,2,3]. 길이는 3, "123". 길이가 3을 얻을 수 있습니다.
그러나 eval.length, regexp.length, "".tostring.length, 1..tostring.length get은 무엇입니까?
각각 1, 2, 0 및 1을 얻습니다. 이 숫자는 무엇을 나타내나요?
이것은 그룹의 많은 새로운 친구들이 묻는 질문입니다. 실제로 함수의 길이는 공식 매개 변수의 수입니다.
간단한 예를 들어 봅시다 :
코드 사본은 다음과 같습니다.
기능 테스트 (A, B, C) {}
테스트. 길이 // 3
기능 테스트 (a, b, c, d) {}
테스트. 길이 // 4
그다지 간단하지는 않지만 특별한 것도 있습니다. 매개 변수를 인수를 통해 내부적으로 호출하고 실제 매개 변수가 정의되지 않으면 길이는 0 만 얻습니다.
코드 사본은 다음과 같습니다.
함수 test () {console.log (arguments);}
test.length // 0
이 함수는 실제로 매개 변수를 전달할 수 있으며 매개 변수는 내부적으로 호출되지만 길이는 전달 된 매개 변수 수를 알 수 없습니다.
실제 매개 변수는 인수를 통해서만 얻을 수 있습니다.
코드 사본은 다음과 같습니다.
함수 test () {console.log (arguments.length);}
시험 (1,2,3); // 출력 3
시험 (1,2,3,4); // 출력 4
따라서 함수의 길이 속성은 공식 매개 변수의 수만 얻을 수 있지만 실제 매개 변수의 수를 알 수 없습니다.