>웹 프론트엔드 >JS 튜토리얼 >javascript_javascript 스킬에서 함수를 정의하기 위해 함수문과 표현식을 사용하는 것의 차이점에 대한 자세한 설명

javascript_javascript 스킬에서 함수를 정의하기 위해 함수문과 표현식을 사용하는 것의 차이점에 대한 자세한 설명

WBOY
WBOY원래의
2016-05-16 17:05:281159검색

저는 수년 동안 JavaScript를 사용해 왔으며 수많은 함수를 작성해 왔습니다. 그러나 오늘 저는 두 함수 정의의 차이점을 정말로 이해하게 되었습니다. 계속하기에는 너무 늙었습니다.

보통 함수를 정의하는 방법은 다음 두 가지로 볼 수 있습니다.

코드 복사 코드는 다음과 같습니다.

// 함수문
function fn(str)
{
console.log(str);
};

//표현식 정의
var fnx=function(str)
{
console.log(str ' from fnx');
};


In 예전에는 두 가지를 손가락 느낌에 맞춰 사용했어요 -_- || 오늘은 js의 기본을 읽고 드디어 궁금증을 풀었습니다.

두 메소드 모두 새로운 함수 개체를 생성하지만 함수 선언문의 함수 이름은 변수 이름이고 변수는 var를 통해 변수를 선언하는 것처럼 함수 정의문의 함수가 명시적으로 고급화됩니다. 스크립트 전체와 함수 내에서 볼 수 있지만 var 표현식을 사용하여 함수를 정의하면 변수 선언만 앞으로 가져오고 변수 초기화 코드는 여전히 원래 위치에 있습니다. function 문으로 생성된 함수 앞에는 함수 이름과 함수 본문이 추가되므로 선언하기 전에 사용할 수 있습니다.

코드 예시는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

console.log(typeof(fn)) // function
fn('abc') // abc


console.log(typeof(fnx)) // 정의되지 않음

if(fnx)
fnx('abc'); // 실행되지 않습니다
else
console.log('fnx는 정의되지 않았습니다') // fnx는 정의되지 않았습니다.

// 함수문
function fn(str)
{
console.log(str);
};

// 표현식 정의
var fnx=function(str)
{
console.log(str ' from fnx');
};


코드는 매우 간단합니다. 이전에 저처럼 둘 사이의 차이점을 파악하지 못한 학생들이 뭔가를 얻을 수 있기를 바랍니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.