자바스크립트: 함수 표현식

자바스크립트 함수 표현식이란? 함수 선언 및 함수 표현식이라는 문구와 혼동이 된다면 제대로 찾아오셨습니다.

오늘 우리는 자바스크립트 함수 표현이 무엇인지 그리고 그 진정한 의미가 무엇인지 더 깊이 파고들 것입니다. 이것은 Javascript의 기본적인 부분이므로 초보자와 기능에 대해 더 많이 배우는 사람에게 좋은 낮은 수준의 내용입니다. 이 기사에 대한 좋은 피드백을 받으면 이야기할 내용이 많기 때문에 Javascript Functions에 대한 전체 시리즈를 만들고 싶습니다!

함수 표현식



함수로 작업할 때 우리는 아마 생각조차 하지 않고 이미 함수 표현식으로 작업했을 것입니다. 그러나 함수로 작업할 때 내부에서 무슨 일이 일어나고 있는지 정말로 알고 있습니까? 평가 방법, 범위, 지역 변수 등은 무엇입니까? 그렇다면 이 기사는 새로고침을 해야 하고, 그렇지 않다면 함수 표현식으로 작업하는 방법을 배울 준비를 하십시오.

다음은 함수 표현식의 예입니다.

const square = function(x) { return x * x };


일반적인 Javascript 사용자에게는 이미 매우 친숙해 보일 수 있으며 알지 못했을 수도 있습니다. 함수 표현식을 보면 일반 함수와 매우 흡사합니다. 그러나 함수 선언과 함수 표현식에는 차이가 있습니다.

어떻게 작동합니까?



함수 표현식에는 사용하려고 할 때마다 염두에 두어야 하는 몇 가지 부작용이 있습니다. 예를 들어, 첫 번째 예제에서 이미 알아차렸을 수 있습니다. 함수는 선언할 때 이름이 없었습니다. 예를 들어 다음과 같은 변수에 할당했습니다.

// here we assign our function expression to 
// a const variable named square

const square = function(x) { return x * x }


그렇다고 해서 함수에 이름을 추가할 수 없다는 의미는 아니지만 여전히 해당 옵션이 있습니다. 이것은 일반적으로 또 다른 큰 주제인 재귀를 다룰 때 도움이 됩니다.

함수를 정의한 직후에 호출할 수도 있습니다.

let square = (function(x){return x * x});


그럼 또 뭐가 달라?



함수를 정의하는 방법에는 여러 가지가 있지만 함수 선언과 함수 표현식은 매우 유사해 보이며 코드가 실제로 수행하는 작업을 모를 경우 때때로 혼란스러운 오류를 던질 수 있습니다. 이것이 고급 기술에 뛰어들기 전에 자바스크립트의 기초를 이해하는 것이 매우 중요한 이유입니다.

함수 표현식은 변수를 선언하지 않습니다. 새로 정의된 함수 객체를 변수(const, let, var)에 할당하는 것은 개발자의 몫입니다. 중복된 이름이나 덮어쓰기를 피하기 위해 const 변수를 사용하는 함수 표현식을 만들 때 습관화하십시오.

이름을 포함해야 하나요?



함수 표현식의 이름을 지정하는 것은 선택 사항이지만 도우미와 함께 제공됩니다. 함수에 이름을 추가하면 해당 함수의 로컬 범위가 함수 개체와 함께 이름을 바인딩합니다. 그러나 함수가 표현식으로 정의될 때 대부분의 경우 정의를 더 간결하게 만들기 위해 이름이 필요하지 않습니다.

결론



선언 형식을 사용하여 함수를 정의하기로 결정하면 함수 개체를 포함하는 코드가 실행되기 전에 함수 개체가 생성되므로 정의 문 위에서 이러한 함수를 호출할 수 있도록 함수를 끌어올릴 수 있습니다. 이것은 함수 표현식에 대해 TRUE가 아닙니다. 그러나 이러한 함수는 함수를 정의하는 표현식이 평가될 때까지 존재하지 않습니다.

이 기사가 끝날 때까지 코드의 모든 라인에서 진행되는 작업을 만들고 이해하는 방법을 배웠기를 바랍니다. 코드가 완전히 작동하는 방식을 이해하는 것은 매우 중요합니다. 코드는 더 나은 개발자가 되는 데 도움이 될 뿐만 아니라 작업 중인 도구를 보다 효율적으로 사용하는 데도 도움이 됩니다.

이 기사는 주로 더 나은 프로그래머, 작가가 되고 프로그래밍 기술을 키우기 위해 개인적으로 사용하기 위한 것입니다. 나와 다른 사람들을 돕기 위해 이루어져야 한다고 생각하는 피드백이나 수정 사항을 자유롭게 삭제하십시오. 여기까지 시간을 내주셔서 감사합니다!

나에게 팔로우를 제공하고 에 연결해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기