키워드 함수는 함수를 정의하는 데 사용됩니다.
코드 사본은 다음과 같습니다.
// 함수 선언 정의 :
함수 funcName ([arg1 [, args [..., argn]]) {
진술
}
// 함수 표현식 정의 :
var funcname = function ([arg1 [, args [..., argn]]) {
진술
};
기능 본문에 하나의 문 만 포함 된 경우에도 기능 문의 곱슬 브레이스가 필요합니다.
JavaScript에서 함수는 기능 클래스의 특정 인스턴스입니다. 그리고 그들은 모두 다른 참조 유형과 같은 속성과 방법을 가지고 있습니다.
함수 이름은 실제로 함수 객체에 대한 포인터이며 함수는 매개 변수 전송 및 리턴 값에 참여하기위한 매개 변수로 사용할 수 있습니다.
함수의 객체 속성
함수는 함수의 인스턴스이므로 함수 이름은 해당 인스턴스의 참조 주소 일뿐입니다. 따라서 함수의 매개 변수 전송 프로세스에서 매개 변수 및 리턴 값으로 사용할 수 있습니다.
코드 사본은 다음과 같습니다.
함수 call_some_function (some_function, some_argument) {
일부 _function (some_argument)을 반환합니다.
}
함수 add_10 (num) {
Num + 10을 반환합니다.
}
console.log (call_some_function (add_10,20)); // 30
함수의 내부 속성
인수 | 이것
• 인수 객체는 기능에 전달 된 매개 변수를 보유합니다
• 인수. 길이는 들어오는 매개 변수의 수를 반환합니다
• 참고 : 길이 속성은 함수가 정의 될 때 기본적으로 수신 된 매개 변수 수를 나타냅니다. arguments.length는 함수가 실제로 실행될 때 수신 된 매개 변수 수를 나타냅니다.
코드 사본은 다음과 같습니다.
함수 test_arguments () {
if (arguments.length == 2) {
Console.log (Arguments.length);
Console.log (인수);
} 또 다른 {
Console.log (Arguments.length);
Console.log (인수);
arguments.callee (4, 5);
};
} (1, 2, 3)
/**
3
{ '0': 1, '1': 2, '2': 3}
2
{ '0': 4, '1': 5}
**/
• arguments.callee ()는 주로 기능 자체가 재귀 함수로 호출되는 상황에서 사용됩니다. JS와 다른 언어의 차이점은 함수 이름이 포인터 일뿐 아니라 언제든지 변경할 수 있다는 것입니다. 함수의 함수 이름은 고도로 결합되어 문제가 발생할 수 있으며 Arguments.callee () 자체 가이 문제를 피할 수 있습니다.
코드 사본은 다음과 같습니다.
기능 계승 (Num) {
if (num <= 1) {
반환 1;
} 또 다른 {
Num * Factorial (Num -1)을 반환합니다.
};
}
함수 callee_f (num) {
if (num <= 1) {
반환 1;
} 또 다른 {
Num * arguments.callee (num -1);
};
}
계승 (10); // 정상 작동합니다
f = 팩토리 노트;
factorial = null;
f (10); //오류
callee_f (10); // 정상적으로 작동합니다
f = callee_f;
callee_f = null;
f (10); // 정상 작동합니다
• 이것은 주로 함수가 함수의 범위에서 객체를 참조하는 데 도움이됩니다.
코드 사본은 다음과 같습니다.
var color = '빨간색';
함수 syacolor () {
Console.log (this.color);
}
syacolor (); //빨간색
var o = new Object ();
o.color = '파란색';
O.SayColor = SayColor;
O.SayColor (); //파란색
Call () 및 apply ()
Call () 및 apply ()는 각 함수에 포함 된 자체 메소드입니다. 함수가 정의 된 객체가되기 전에 언급되었으므로 함수를 호출 할 때 함수의 이것은 현재 및 하위 변수에 대한 호출입니다. 함수가 실행되는 도메인 공간을 변경하려면 Call () 및 apply ()를 사용하여 구현할 수 있습니다.
코드 사본은 다음과 같습니다.
color = '빨간색';
var o = {color : 'blue'};
함수 sayscolor () {
Console.log (this.color);
}
SayColor (); //빨간색
saycolor.call (this); //빨간색
saycolor.call (o); //파란색
app () 및 call ()의 함수는 동일하며 차이는 주로 들어오는 매개 변수의 차이입니다.
CALL (이것, para1, prar2, prar3) 첫 번째 매개 변수는 실행될 함수의 범위입니다. 후속 매개 변수는 함수의 입력 매개 변수이며 순서대로 쓰여진 경우가 너무 많습니다.
적용 (this, [para1, para2, prara3]) 첫 번째 매개 변수는 실행될 함수의 범위, 배열 배열 객체가 이어집니다.
Call ()/apply ()를 사용하여 스코프를 확장하는 데있어 가장 큰 이점은 객체와 메소드의 분리입니다.
내장 객체
글로벌 객체는 가장 바깥 쪽 객체, 모든 객체, 다른 객체에 속하지 않는 속성 및 메소드가 글로벌 객체에 포함되어 있습니다.
* ISNAN (X)은 매개 변수 X가 숫자인지 확인하는 데 사용됩니다. 거짓이 숫자에 대해 반환되면 그렇지 않으면 true를 반환하십시오.
* Isfinite (x)는 매개 변수 X가 무한/작은지 확인하는 데 사용됩니다. 무한/작은 경우 true가 반환됩니다.
* parseint (x)는 문자열을 구문 분석하고 정수를 반환하는 데 사용됩니다.
* parsefloat (x)
* EncodeUri () 및 encodeUricOComponent ()는 문자열에서 특수 UTF-8 인코딩을 수행하여 브라우저가 이해할 수있는 특수 문자를 피합니다. 그들 사이의 주요 차이점은 Encodeuri ()가 URI에 속하는 특수 문자를 인코딩하지 않으며 EncodeUricomponent ()가 찾은 모든 비표준 문자를 인코딩한다는 것입니다.
코드 사본은 다음과 같습니다.
var uri = "http://www.wrox.com/illegal value.htm#start";
//http://www.wrox.com/illegal%20Value.htm#start
Console.log (Encodeuri (uri))
//http%3A%2F%2Fwww.wrox.com%2FILLEGAL%20VALUE.HTM%23START
Console.log (EncodeUricomponent (uri))
• 해당 디코딩 함수는 DecodeUri () 및 decodeUricomponent ()입니다.
• Eval (스크립트)은 통역사에서 스크립트 내용을 실행하고 해당 결과를 반환하는 데 사용됩니다. 매우 강력합니다!
참고 : 브라우저에서 Windows 객체는 글로벌 객체를 캡슐화하고 많은 추가 작업과 기능을 수행합니다.
수학 객체는 또 다른 내장 객체입니다. JavaScript의 수학적 계산 기능을 제공합니다.
위는이 기사에 관한 것입니다. 나는 당신이 그것을 좋아하기를 바랍니다. 그리고 그것은 당신에게 도움이 될 것입니다.