오늘은 자바스크립트의 function 함수와 arguments, arguments.length에 대하여 공부했던 내용을 정리해보았습니다.
<script>
/*
//하나의 파라메터만 받지만 추가적으로 파라메터를 받으면 그냥 무시한다.
alert("먼저");
alert("먼저", "무시당함"); //뒤에 쓴건 실행하지않는다.
alert();
prompt("입력해보세요.");
//파라메터의 개수에 따라서 예외처리가 되어있는 것들도 있다.
var array1 = Array(); //빈 배열
var array2 = Array(5); //5칸 배열
var array3 = Array(1, 2, 3, 4); //4칸 배열 , 배열 안의 내용은 1,2,3,4
var array4 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); //10칸배열
var array5=[1];
var array6=[1,2,3,4];
alert(array1);
alert(array2); //실행결과는 공간,공간,공간,공간,공간 이렇게 되므로 쉼표 4개(,,,,) 찍힌다.
alert(array3);
alert(array4);
alert(array5);
alert(array6);
*/
/*
function abc() {
if (arguments.length == 0)
return 0;
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum; //1번
//alert(sum); //2번
}
alert(abc(1,2,3)); //1번일때 호출가능, 반환하는 값(return 값)을 띄운다.
//abc(1,2,3); //2번일때 호출가능
*/
function pita1(w,h){
return Math.sqrt(w*w+h*h); //Math.sqrt는 루트(w의제곱 + h의 제곱)
}
alert(pita1(3,4));
function square(x){ //square함수(제곱해주는함수) 만들기
return x*x;
}
function pita2(w,h){
return Math.sqrt(square(w)+square(h)); //square함수로 제곱을 만들어서 루트로 리턴함
}
alert(Math.floor(pita2(5,7))); //floor함수로 소수점자리 안뜨게 함
</script>
● arguments 객체와 arguments.length 함수
arguments 객체는 함수에 전달된 인수에 해당하는 Array형태의 객체이며 모든 함수 내에서 이용 가능한 지역 변수입니다.
arguments 객체를 사용하면 함수 내에서 모든 인수를 참조할 수 있고, 호출 할 때 제공한 인수 각각에 대한 항목을 갖고 있습니다. 항목의 인덱스는 0부터 시작합니다. 그렇다고 arguments 객체가 Array라는 것은 아닙니다.
Array형태란 말은 arguments가 length 속성과 더불어 0부터 인덱스 된 다른 속성을 갖고 있지만
Array의 pop(),forEach, map처럼 내장 메서드를 가지고 있지 않다는 의미입니다.
그러나 실제로 Array로 변환 할 수는 있습니다.
arguments.length란 함수에 전달된 인수의 수를 가리킵니다.
함수에 전달된 인수의 수를 결정하기 위해 arguments.length를 쓰고 그 뒤에 argumnets 객체를 사용하여 각 인수를 처리하면됩니다.
● 코드 전체 실행 결과
최근댓글