객체 리터럴이 객체를 생성합니다:
var obj = {x:[1,2],y:23};
코드는 아래와 같습니다.
var obj=new Object( );
obj.x=new 배열(1,2);
obj.y=23;
테스트:
for(var i in obj) Alert(obj[i]); 🎜>
함수 리터럴: 명령문이 아닌 표현식입니다.
(function(){})()
다음 예:
(function(){
document.write("일부 스크립트 코드");
})()
var a=(function(s){return s})("abc ");
alert( a);
var b=function(s){return s};
alert(b("abc"));
방법 이것을 설명하세요
모두가 기억해야 할 것 이 작성 방법
var a=function (){}
그러면 a를 실행하는 방법은 a()입니다
같은 방식으로 저장하지 않습니다. 변수 a를 통해서 나오니까 어떻게 작성하면
function(){}()
하지만 이게 틀렸다는 걸 알게 될 거예요
파싱 엔진이 파싱할 때, 함수가 종료되었다고 판단
해당 함수를 블록으로 간주하지 않습니다
를 실행한 후 ()를 추가하면 해당 함수 블록이 강제로 블록이 됩니다
1. 익명이란 무엇입니까? function
Javascript에서 함수를 정의하는 방법은 일반적으로 세 가지가 있습니다. :
함수 키워드(함수) 문:
function fnMethodName(x){alert(x);}함수 리터럴 :
var fnMethodName = function(x){alert (x);}Function() 생성자:
var fnMethodName = new Function('x','alert(x);') 위의 세 가지 메서드는 동일한 메소드 함수 fnMethodName, 첫 번째 메소드가 가장 일반적으로 사용됩니다. 후자의 두 메소드는 함수를 fnMethodName 변수에 복사하며 이 함수에는 이름이 없습니다. 즉 익명 함수입니다. 실제로 상당수의 언어에는 익명 기능이 있습니다.
2. 함수 리터럴과 Function() 생성자의 차이점
함수 리터럴은 익명 함수이지만 구문을 사용하면 함수 이름을 지정할 수 있습니다. 재귀 함수를 작성할 때 자신을 호출할 수 있지만 Function() 생성자를 사용하면 안 됩니다. var f = functionfact(x) {
if (x < = 1) return 1
else return x*fact(x-1);
};
Function( ) 생성자를 사용하면 런타임 시 Javascript 코드를 동적으로 생성하고 컴파일할 수 있습니다. 이러한 방식은 전역 함수 eval()과 유사합니다.
Function() 생성자는 함수 본문을 구문 분석하고 실행될 때마다 새 함수 객체를 생성합니다. 따라서 루프나 자주 실행되는 함수에서 Function() 생성자를 호출하는 효율성은 매우 낮습니다. 대조적으로, 함수 리터럴은 만날 때마다 다시 컴파일되지 않습니다.
Function() 생성자를 사용하여 함수를 생성하면 일반적인 범위를 따르지 않으며 항상 최상위 함수로 실행됩니다.
var y = "global" ;
function constructionFunction() {
var y = "local";
return new Function("return y") // 지역 변수를 얻을 수 없습니다.}
alert(constructFunction()() ); // "전역" 함수 리터럴 출력:
표현식 구문인 경우 스크립트 호스트는 아무것도 추가되지 않고 function으로 시작하는 경우 함수를 리터럴 함수로 간주합니다. , 선언, 4개의 산술 연산과 같은 표현식에 함수를 작성하면 호스트는 다음과 같이 이를 직접 수량으로 처리합니다.
var a = 10 function(){
return 5; >
약간 과장해서 다음과 같습니다:
코드 복사
코드는 다음과 같습니다
(function(){
alert(1);
} ) ( )
( function(){
alert(2);
} ( ) ) ;
void function(){
alert(3);
}()
0, function(){
alert(4)
-function(){
alert(5);
}();
function(){
alert(6)
}();
alert(7);
}();
~function(){
alert(8)
}()
함수 유형(){
alert (9);
}();
js에서 함수를 정의하는 방법은 여러 가지가 있으며, 함수 리터럴이 그 중 하나입니다. 예를 들어 var fun = function(){}에서 함수가 fun에 할당되지 않은 경우 이는 익명 함수입니다.
자, 익명 함수가 어떻게 호출되는지 살펴보겠습니다.
1. 실행 후 값을 반환하는 함수 호출
//방법 1, 함수를 호출하고 반환값을 가져옵니다. 강제 연산자는 함수 호출이 (function(x,y){
alert(x y);
return x y;
}(3,4)); >/ /방법 2: 함수를 호출하고 반환 값을 가져옵니다. 함수를 직접 실행한 다음 참조를 반환합니다.
(function(x,y){
alert(x y);
return x y;
})( 3,4) ;
2. 실행 후 반환값 무시
코드 복사
//방법 3, 함수를 호출하고 반환 값을 무시합니다. void function(x) {
x = x-1>alert(x) ); }(9);
드디어 잘못된 호출 방법을 살펴보세요
코드 복사
return x y; 🎜>}(3,4)