>  기사  >  웹 프론트엔드  >  자바스크립트에 정의된 함수 유형은 무엇입니까?

자바스크립트에 정의된 함수 유형은 무엇입니까?

WBOY
WBOY원래의
2022-03-10 14:57:062554검색

JavaScript에는 여러 유형의 함수가 정의되어 있습니다. 1. function 키워드를 사용하여 선언이나 표현식을 통해 함수를 정의하고 구문은 "function functionName(parameters){executed code}"입니다. 2. 함수 생성자 Function()을 사용합니다. 건설자.

자바스크립트에 정의된 함수 유형은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript에서 정의하는 함수 유형은 무엇인가요?

JavaScript는 function이라는 키워드를 사용하여 함수를 정의합니다.

함수는 선언으로 정의할 수도 있고 표현식일 수도 있습니다.

함수 선언

이전 튜토리얼에서 여러분은 이미 함수 선언의 구문을 이해했습니다.

function functionName(parameters) {
  执行的代码
}

함수는 선언된 직후에 실행되지 않고 필요할 때 호출됩니다.

함수 생성자

함수 생성자는 함수 개체를 만드는 데 사용됩니다. JavaScript에서는 실제로 모든 함수가 함수 개체입니다.

함수 생성자의 구문:

new Function ([arg1[, arg2[, ...argN]],] functionBody)

arg1, arg2, ... argN은 함수의 일반 매개변수 이름으로 변수 이름으로 사용됩니다. 이러한 변수 이름은 JavaScript 변수 식별 사양을 준수하는 단일 변수를 나타내는 문자열이어야 합니다. "x", "theValue" 또는 "a,b"와 같은 여러 변수를 나타내는 쉼표로 구분된 문자열입니다.

functionBody 함수 정의의 JavaScript 문이 포함된 문자열입니다.

Description

1. 함수 객체는 함수 생성자가 함수로 파싱될 때 생성됩니다. 그러나 이는 함수 선언, 함수 표현식 등을 사용하는 것보다 효율성이 떨어집니다. 이러한 함수는 코드를 통해 직접 구문 분석되기 때문입니다.

2. 함수 생성자에 전달된 문자열 매개변수는 함수 생성자가 생성한 함수의 변수 매개변수 이름으로 사용되며, 나타나는 순서는 생성된 함수의 매개변수 순서로 사용됩니다.

3. 함수 생성자를 함수로 호출하면(new 키워드로 수정 여부에 관계없이) 동일한 효과가 있습니다.

Example

// Example can be run directly in your JavaScript console
// Create a function that takes two arguments and returns the sum of those arguments
var adder = new Function('a', 'b', 'return a + b');
// Call the function
adder(2, 6);
// > 8

매개변수 a와 b는 함수 본문에서 사용할 수 있는 일반적인 매개변수 이름입니다.

생성된 함수는 다음과 같습니다.

function (a,b){undefined
  return a+b;
}

json을 구문 분석하는 방법: var json = (new Function("return " + str))();

원리는 동일합니다.

생성된 함수는

function toJson(str){undefined
   return str;
}
var str="{'a':1,'b':'abc'}";
toJson(str);

즉: function(){return {'a':1,'b':'abc'}}

함수 생성자와 함수 선언의 차이점:

함수 생성자로 생성된 함수는 context 패키지는 항상 전역 범위에서 생성됩니다. 생성된 함수를 실행할 때 eval과 다른 자체 로컬 변수 또는 전역 변수만 사용할 수 있습니다.

관련 권장 사항: javascript 학습 튜토리얼

위 내용은 자바스크립트에 정의된 함수 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.