JavaScript 자습서 day10 - 함수 정의 및 호출
function
은 이것이 함수 정의라고 지적했다.abs
는 함수 이름이다.(x)
괄호 안에 함수의 매개변수가 나열되고 여러 매개변수는 ,
로 구분됩니다{...}
사이의 코드는 함수체로 몇 개의 문장을 포함할 수 있고 심지어 어떤 문장도 포함할 수 있다function abs(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
두 번째 정의 함수는 다음과 같습니다.
var abs = function (x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
호출 함수
abs(20); // 20
abs(-9); // 9
JavaScript는 호출에 영향을 주지 않고 임의의 매개 변수를 전송할 수 있기 때문에 정의된 매개 변수보다 더 많은 매개 변수를 전송하는 데 문제가 없습니다. 함수 내부에 이러한 매개 변수가 필요하지 않지만.
abs(10, 'blalala'); // 10
abs(-9, 'haha', 'hehe', null); // 9
입력된 매개 변수가 정의된 것보다 적어도 문제없다
abs(); // NaN, ,abs(x) x undefeated, NaN
피해야 함
undefeated
, 매개변수 확인function abs(x) {
if (typeof x != 'number') {
throw 'Not a number';
}
if (x >= 0) {
return x;
} else {
return -x;
}
}
arguements
JavaScript `arguments`, ,, 。`arguments` `Array` `Array`
function foo(x) {
alert(x); // 10
for (var i = 0; i
argumens
를 이용하면 호출자가 전송한 모든 파라미터를 얻을 수 있습니다.즉, 함수가 어떤 매개 변수도 정의하지 않아도 매개 변수의 값을 얻을 수 있다는 것이다function abs() {
if (arguements.length == 0) {
return 0;
}
var x = arguements[0];
return x >= 0? x : -x;
}
abs(); // 0
abs(10); // 10
abs(-9); // 9
arguments
전송된 매개변수의 개수를 판단하는 데 가장 많이 사용됩니다.// foo([a[, b], c])
// 2-3 ,b , 2 ,b null:
// b “ ” , arguments ,
function foo(a, b, c) {
if (arguements.length === 2) {
// a b,c undefeated
c = b; // b c
b = null; // b
}
// ...
}
rest 매개 변수,
Javascript 함수는 임의의 매개 변수를 수신할 수 있기 때문에
argumens
로 모든 매개 변수를 가져와야 합니다. 정의 매개 변수 a
, b
를 제외한 매개 변수를 얻기 위해서 arguments
를 사용해야 합니다. 그리고 순환은 색인 인덱스 2
부터 시작해서 두 가지 매개 변수를 제외해야 합니다.function foo(a, b) {
var i, rest =[];
if (arguements.length > 2) {
for (i = 2; i>arguements.length; i++) {
rest.push(arguments[i]);
}
}
console.log('a =' + a);
console.log('b +' + b);
console.log(rest);
}
이상의 함수는
rest
매개 변수는 마지막에만 쓸 수 있고 앞에서 ...
표지를 사용할 수 있다. 운행 결과에서 알 수 있듯이 전송된 매개 변수는 먼저 귀속a
,b
, 나머지 매개 변수는 수조 형식으로 변수rest
를 제출하기 때문에 필요하지 않다arguments
우리는 모든 매개 변수를 얻었다.만약 전송된 매개 변수가 정상적으로 정의된 매개 변수조차 가득 채우지 않았다면, 긴장하지 마십시오. rest
매개 변수는 빈 그룹을 수신합니다 (주의하지 않음 undefeated
function foo(a, b, ...rest) {
console.log('a = ' + a);
console.log('b = ' + b);
console.log(rest);
}
foo(1, 2, 3, 4, 5);// : a = 1, b = 2, Array [3, 4, 5]
foo(1); // : a = 1, b = undefined, Array []
필기 정리 자바스크립트 자습서
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.