익명 함수에 대한 깊은 이해 (철저판)
익명 함수에 대한 이해 1:
function(){
console.log(1);
}
//
직접 사용할 수 없습니다.
익명 함수에 대한 이해 2:
var a = function(){
console.log(1);
}
a(); //1
익명 함수는 하나의 변수에 의존할 수 있으며, 이 변수 이름은 이 익명 함수의 이름이다.
var a = function(){
console.log(1);
}
console.log(typeof a); //function
익명 함수에 대한 이해 3:
window.onload = function(){
console.log(" ");
}
//
익명 함수를 귀속 이벤트에 사용할 때, 이 이벤트가 실행될 때, 이 익명 함수도 실행됩니다.
익명 함수에 대한 이해 4:
(function(){
console.log(" ");
})()
//
표현식에 익명 함수를 넣고 뒤에 괄호를 넣으면 자동으로 이 함수가 실행됩니다.
익명 함수에 대한 이해 5:
var a = function(){
console.log(" ");
}();
//
익명 함수 뒤에 괄호를 넣으면 이 함수를 실행합니다.
익명 함수에 대한 이해 6:
function(){
console.log(1);
}();
//
익명 함수는 변수를 첨부해야 합니다.
익명 함수에 대한 이해 7:
var a = {
fn:function(){
console.log(1);
}
}
a.fn(); //1
익명 함수는 변수뿐만 아니라 대상의 속성에도 의존할 수 있다.
익명 함수에 대한 이해 8:
var a = {
fn:function(){
console.log(" ");
}()
} //
같은 익명 함수를 대상의 속성으로 사용할 때도 호출할 수 있다.
익명 함수에 대한 이해 9:
var a = function(b){
console.log(b)
}
a(52); //52
익명 함수도 매개 변수를 전달할 수 있다
익명 함수에 대한 이해 10:
(function(a){
console.log(a);
})(10) //10
표현식 함수에 대해서도 매개 변수를 전달할 수 있다
익명 함수에 대한 이해 11:
var a = function(b){
console.log(b);
}(10); //10
console.log(a); //undefined
실행된 익명 함수를 되돌려 주지 않고 변수에 값을 부여하면 이 변수의 값은undefined입니다.이 함수는 값을 부여하기 전에 이미 실행되었기 때문에, 이 함수는 반환 값이 없기 때문에, undefined입니다. 만약 반환 값이 있다면, 이 변수의 값은 그 익명 함수의 반환 값입니다.
var a = function(b){
return b;
}(10);
console.log(a); //10
여기에 익명 함수에 대한 설명은 여기까지입니다. 다음은 자신이 실행하는 익명 함수에 대한 문제를 말씀드리겠습니다.
why?왜 아래의 이 코드가 잘못 보고됩니까?
function(){
console.log(1);
}
//
1. ECAMScript가 규정한 함수의 성명은 반드시 이름이 있어야 하기 때문에 이름이 없으면 우리는 그것을 찾을 방법이 없다. 왜 자행 함수에 대해 왜 이름 뒤에 말하지 않아도 되는지.
2. 이름이 없으면 이 익명 함수를 변수에 값을 부여해야 합니다.
만약 위의 견해에 따라 js가 오류를 보고하는 것도 당연하다면, 우리가 사용하는 아래의 이런 코드는 왜 정상적으로 운행할 수 있습니까?
(function(){
console.log(1);
})() //1
우리가 이 함수를 작은 괄호에 포함했기 때문에, why?괄호 왜 이렇게 신기해?
ECAMScript의 규정에 따라 함수 성명은 반드시 이름이 있어야 하지만, 우리가 괄호로 확대하면 이 함수는 더 이상 함수 성명이 아니라 함수 표현식이다. 당신은 아래의 코드로 이해할 수 있다.
var a = function(){
console.log(1);
}(); //1
익명 함수를 변수나 대상 속성에 값을 부여하는 것은 함수 표현식이다. 함수 표현식은 이름을 필요로 하지 않을 수 있기 때문에 우리는 직접 이런 방식을 통해 이 함수를 자동으로 실행할 수 있다.
한마디 더 하다
(function(){
....
})()
첫 번째 괄호는 연산자입니다. 이 익명 함수를 되돌려주고 마지막 괄호는 이 함수를 실행합니다.
총괄적으로 말하면 표현식이면 그것을 직접 실행할 수 있고 함수 이름이 필요하지 않으면 우리는 그것을 이렇게 호출할 수 있다.
-function(){
console.log(1);
}()
+function(){
console.log(2);
}()
~function(){
console.log(3);
}()
!function(){
console.log(4);
}()
&function(){
console.log(5);
}()
|function(){
console.log(6);
}()
/function(){
console.log(7);
}()
/function(){
console.log(8)
}()
%function(){
console.log(9)
}()
typeof function(){
console.log(10)
}()
null==function(){
console.log(11)
}()
0==function(){
console.log(12)
}()
0!=function(){
console.log(13)
}()
0>function(){
console.log(14)
}()
0<function(){
console.log(15)
}()
0-function(){
console.log(16)
}()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.