[JAVASCRIPT - ES6] 자바스크립트 함수, 파라메터, 나머지 파라메터, 화살표 함수, 에러와 예외처리(try ~ catch, throw)
자바스크립트는 함수형 언어입니다.
구현하는 기능들은 기본적으로 모두 함수를 통해 구현됩니다.
함수의 구조
function 함수이름(파라메터){
//실행 영역
}
함수는 위의 형태를 가집니다.
function : 함수임을 표시하는 키워드 입니다.
함수이름 : 함수를 호출할 떄 사용하는 명칭입니다.
함수를 선언하는 방식에 따라 function 뒤에 올수도, 앞에 대입 변수명으로 올 수도 있습니다.
파라메터 : 매개변수라고도 하며, 괄호로 감싸 표현하고, 파라메터가 없을 경우 ()만으로 표시합니다.
함수 안의 실행 영역에 전달할 값이 있을 경우 파라메터를 이용해 값을 넘기게 됩니다.
실행 영역 : 함수의 실행 결과 값을 반환하기 위해 return 결과 값; 같은 코드를 추가할 수 있습니다.
※ return이 없다고 반환을 하지않는게 아니고, "undefined"를 반환합니다.
함수 정의 방법
함수 선언문 형태로 만드는 방법과, 함수 표현식으로 만드는 방법 2가지가 있습니다.
함수 선언문 형태
function myFunc(param){
console.log(param + 'run!');
}
함수 표현식 형태
const myFunc2 = function(param){
console.log(param +'run!);
}
사용 방법은 일반 함수와 동일합니다.
myFunc('myFunc');
myFunc2('myFunc');
파라메터와 인자
파라메터는 함수 정의 시점에 정의하는 변수로 함수가 넘겨받는 값 들을 담기 위한 함수 내부에서 사용하는 변수입니다.
인자는 실제 함수를 호출하는 시점에 함수 호출과 함께 함수로 넘어가는 값 입니다.
자바스크립트는 파라메터 개수와 인자 개수가 일치하지 않아도 에러가 발생하지 않습니다.
파라메터 개수보다 인자 개수가 적을 경우 남는 파라메터에는 "Undefined" 가 전달됩니다.
ES6에서 새롭게 추가된 기능으로 함수를 정의할 때 함수 파라메터의 기본값을 설정할 수 있는 기능이 생겼습니다.
이렇게 파라메터 기본 값을 지정하여 함수를 구현하면, 파라메터 값이 넘어왔는지를 체크하지 않아도 되기 때문에
최적화된 코드를 작성할 수 있습니다.
나머지 파라메터
ES6에서 추가된 기능으로, 파라메터 개수를 가변으로 사용할 수 있도록 해주는 기능입니다.
맨 마지막 파라메터 변수명 앞에 붙여서 점 3개(...)를 표시하면 해당 파라메터는 나머지 파라메터가 됩니다.
function myFunc(a, b, ...args){
}
최소 2개의 파라메터는 필수고, 추가의 파라메터는 선택적인 파라메터라면
나머지 파라메터는 배열 객체로 넘어오기 때문에
순환 구문으로 나머지 파라메터들에 대한 처리를 손쉽게 할 수도 있습니다.
function sum(a, b, ...args){
let result = a + b;
args.forEach(function(arg){
result += arg;
})
return result;
}
화살표 함수
화살표 함수는 ES6에서 도입된 함수 표기 방법으로 함수를 단순한 형태로 표현할 수 있도록 해줍니다.
1. function add(a, b){
return a + b;
}
2. let add = (a,b) => a+b;
1번과 같은 함수를 2번과 같은 형태로 단순화를 할 수 있습니다.
사용 예시)
const alert = () => console.log('error');
에러와 예외 처리(throw, try ~ catch ~ finally)
throw
에러 상황이라고 판단될 경우 강제로 예외 오류를 발생시키고 코드 실행을 종료하는 구문입니다.
사용자가 코드상에 직접 원하는 위치에 예외 오류를 발생시키고 실행을 중지하는데 사용합니다.
throw '사용자 지정 에러 메시지!';
이렇게 작성하면 해당 위치에서 코드실행은 멈추게 되고,
사용자가 지정한 에러메시지를 표시하는 예외 오류가 발생합니다.
throw 구문에서 예외오류가 발생하면, 그 밑의 코드는 실행되지 않습니다.
try ~ catch ~ finally
에러가 발생할 가능성이 있는 코드 블록을 감싸서, 에러가 발생할 경우 catch 블록에서 발생한 에러에 대한
대응을 할 수 있도록 합니다.
예외 발생 여부와는 무관하게 무조건 실행되도록 하는 코드를 finally 블록에 추가할 수 있습니다.
'KoreaIt Academy > JAVASCRIPT' 카테고리의 다른 글
[JAVASCRIPT - ES6] 객체의 이해, 객체의 속성 추가, 변경, 삭제 (0) | 2021.09.08 |
---|---|
[JAVASCRIPT - ES6] 연산자와 조건문(if와 switch문)과 반복문(for문, for~in, for~of, forEach , while문, do-while문) (0) | 2021.09.04 |
[JAVASCRIPT - ES6] 데이터 타입과 자료형의 변환, NULL, Undefined, Math 객체 메소드 (0) | 2021.09.04 |
[JAVASCRIPT - ES6] 변수와 상수 (var, let, const) (0) | 2021.08.11 |
댓글