Javascript 기능은 다소 이상한 것입니다. 한동안 접해 본 사람이라면 그것이 무엇인지 헷갈리고 알 수 없을 것입니다. 일부 자바스크립트 함수에 이름이 없어서 헷갈리시나요? 자바스크립트 함수의 매개변수에 유형이 없어서 미칠 것 같나요? JavaScript 함수를 고려할 가치가 있는 것은 바로 이러한 문제 때문입니다. 함수의 구성부터 자세히 설명하고 싶습니다. 구성은 그런데 자바스크립트 함수 때문에 모양을 알 수가 없어서 여기서는 표준 함수의 구성부터 자세히 설명하겠습니다.
1. 함수 이름
객체 지향 언어에서 함수에는 일반적으로 이름이 있지만 JavaScript 함수의 경우 반드시 그런 함수는 아닙니다. 이는 표현식과 유사하며 이 표현식의 lvalue를 사용하여 함수를 호출하거나 변수에 저장하여 다른 함수에 전달할 수 있습니다. 장점은 호출될 때마다 새로운 객체를 생성할 필요가 없다는 것입니다.
var f= function (x) {return x*x ;};
alert( f(6) );
위의 예는 36을 표시하는 창을 표시합니다.
2 .매개변수 자바스크립트 함수의 매개변수도 꽤 마술적입니다. 프로그램에서는 오류가 발생하지 않으며 때로는 호출이 성공할 수도 있습니다. 이는 Java 언어에서는 상상할 수 없는 일이지만 자바스크립트 함수에서는 이를 수행할 수 있습니다. 예를 들어 위의 예에서는 다음과 같이 호출합니다.
alert(f (6,7))
결과는 여전히 36입니다. 이것이 잘못되지 않더라도 우리는 함수에 의해 정의된 매개변수 수가 호출과 일치하는지 확인하기 위해 함수가 올바르게 호출되기를 원합니다. 함수 호출자의 매개변수 개수는 Arguments 객체를 통해 얻을 수 있습니다. 위의 코드를 수정하세요.
var f= function (x) {
if (arguments.length>1) {
"범위를 벗어남"을 반환
} else {
return x*x;
}
alert( f (6, 7) );
은 함수 호출자의 매개변수 개수를 가져오는 작업을 다루며, 이러한 매개변수의 값도 가져올 수 있습니다. 위 코드를 다시 수정하세요.
var f= function (x) {
if( 인수.길이>1) {
반환 인수[0]*arguments[1];
} else {
return x*x
}
}alert( f(6,7) ) ;
결과가 무엇인지 추측할 수 있나요? 네, 42세입니다.