함수

장바구니의 항목 가격을 매기고 있다고 생각해 봅시다. 숫자를 받아서 세금을 더하고, 반올림한 후, 통화 기호로 서식을 지정합니다. 그리고 다음 항목, 그 다음 항목에 대해 다시 해야 합니다. 이 네 가지 단계를 모든 곳에 복사하면 버그가 생깁니다. 한 곳에서 반올림을 수정해도 나머지 세 개의 복사본은 여전히 잘못되어 있습니다. 함수를 사용하면 이러한 단계의 블록을 한 번 이름 지정하고 필요할 때마다 실행할 수 있습니다. 이 장에서는 이러한 블록을 작성하고, 입력을 전달하고, 값을 다시 얻는 방법에 관해 설명합니다.
함수 선언 및 호출
**함수**는 언제든지 실행할 수 있는 명명된 코드 블록입니다. 단계를 한 번 작성하고, 이름을 지정한 다음 원하는 만큼 그 이름으로 실행합니다.
function 키워드로 만들 수 있습니다:
function greet() {
console.log("Hi there");
}이것이 전체 정의이지만 아직 아무 일도 일어나지 않았습니다. 함수를 작성하면 단계를 저장하지만, 실행하지는 않습니다. 실제로 실행하려면 이름 다음에 괄호를 작성하여 호출합니다:
greet(); // Hi there
greet(); // Hi there두 줄, 두 인사, 한 블록의 코드에서. 정의와 호출은 별개의 것이며, 이를 혼동하는 것이 처음으로 사람들을 헷갈리게 하는 첫 번째 원인입니다.
함수에 하는 일에 대해 명확한 동사 같은 이름을 지정하세요 (greet, logDivider). 변수 이름 지정할 때 취하는 동일한 관심입니다. 10곳에서 호출하는 함수는 이름만큼만 읽기 쉽습니다.
greet()). 처음에는 이 분할이 저를 혼동했습니다: 정의는 레시피이고, 호출은 실제로 요리하는 것입니다. 같은 함수를 원하는 만큼 여러 번 호출할 수 있습니다. 매개변수 및 반환 값
함수는 뭔가를 공급할 때 더 유용합니다. 공급하는 값은 **매개변수**입니다: 호출할 때 전달하는 모든 것을 나타내는 괄호에 나열된 이름입니다.
function greet(name) {
console.log("Hi " + name);
}
greet("민준"); // Hi 민준
greet("지은"); // Hi 지은name은 매개변수입니다. greet("민준")을 호출하면, 텍스트 "민준"이 이 실행을 위해 name에 들어갑니다. 하나의 함수, 다른 결과, 전달하는 것에 따라 다릅니다.
지금까지 이 함수들은 뭔가를 인쇄합니다. 종종 함수가 값을 다시 손에 주기를 원해서 나중에 사용할 수 있습니다. 그것이 return이 하는 것입니다:
function double(number) {
return number * 2;
}
const result = double(5);
console.log(result); // 10return은 함수에서 값을 보냅니다. double(5)는 10이 되고, 저장하거나, 인쇄하거나, 계속 전달할 수 있습니다. 인쇄는 화면에 값을 표시합니다. 반환은 계속 사용하기 위해 코드에 다시 전달합니다.
return은 코드가 나중에 사용할 수 있도록 값을 다시 전달합니다. console.log로 인쇄하면 화면에 표시됩니다. 반환하면 나중에 사용하기 위해 다시 전달합니다. 그 차이를 느끼는 데 한 동안 걸렸습니다. 화살표 함수
함수를 쓰는 더 짧은 방법이 있으며, **화살표 함수**라고 합니다. 변수에 저장하고 function 키워드 대신 => 화살표를 사용합니다:
const add = (a, b) => {
return a + b;
};
console.log(add(2, 3)); // 5함수가 이런 단일 표현식일 때, 중괄호와 return을 버리고 화살표가 값을 다시 손에 주도록 할 수 있습니다:
const add = (a, b) => a + b;
console.log(add(2, 3)); // 5둘 다 같은 일을 합니다. 현대 JavaScript에서 화살표 함수를 어디서나 볼 수 있으므로, 모양을 인식하는 것이 도움이 됩니다: 이름, =, 입력, 화살표, 본문.
function 키워드 대신 =>를 사용하여 변수에 저장됩니다. 본문이 하나의 표현식일 때, 중괄호와 return을 버리고 화살표가 값을 다시 손에 주도록 할 수 있습니다. 이 모양을 계속해서 보게 될 것이므로, 읽기에 편해지는 것이 빠르게 지불합니다. 함수가 여기서 어떻게 진행되는지
함수는 자신을 반복하는 것을 멈추는 방법입니다: 단계 블록의 이름을 지정하고, 입력을 공급하고, 값을 다시 얻으세요. 일단 그것이 클릭되면, 작성하는 대부분의 코드는 다른 함수를 호출하는 작은 함수가 되며, 각각은 하나의 명확한 작업을 수행합니다.
여기서부터 함수는 어디에나 나타납니다. 배열 메서드에 함수를 전달하여 데이터 리스트를 변환하고, 조건부에서 분기 로직을 구성하는 데 사용하며, 변수로 시작한 이름 지정 규칙에 의존합니다. 다음 번에 코드 블록을 복사하고 있다는 것을 발견할 때, 그것은 대신 함수로 래핑하는 신호입니다.

