파라미터의 장점 : 함수 하나로 다양한 기능 만들기
초보 : 함수 많이 만듬
고수 : 비슷한 함수는 여러개 만들지 않음 (코드 양 줄이기)
코드를 빨리 간단하게 작성하는 TIP
먼저 한글로 생각하고 > 한글로 입력 > JS 번역 > 대입으로 변경
https://codingapple.com/unit/es6-3-arrow-function-why/
- 여러가지 기능을 하는 코드를 한 단어로 묶고 싶을 때 (그리고 나중에 재사용할 때)
- 입출력기능을 만들 때
이럴 때 함수를 쓰셔야 합니다. 그래야 좋은 프로그래머가 될 수 있지요.그리고 arrow function을 사용하면 함수 본연의 입출력기능을 아주 직관적으로 잘 표현해줍니다.
I/O
함수는 수학에서 온 개념입니다. 원래 함수는 뭐 숫자를 집어넣으면 뭔가 다른 숫자를 배출하는 블랙박스같은 역할을 합니다. 위 그림처럼 input을 집어넣으면 output을 출력해주는 박스가 바로 함수입니다. 실은 함수개념은 중학교 수학시간에 배웁니다.
문제) f(x) = x + 2 입니다. 그럼 f(2)는 뭘까요?
답은 4입니다.
f(x) 이게 함수입니다.
아까 박스처럼 그림으로 표현하자면 이렇겠네요.
위에선 x를 집어넣으면 x + 2 를 출력해주는 함수를 만들어 쓰고 있던 것입니다.
function 더해주세요(x){
return x + 2
}
함수의 소괄호안에는 input역할을 하는 파라미터가 있고
함수내에 return이라는 것은 output역할을 하는 키워드입니다.
그럼 이제 더해주세요(2); 이렇게 사용하시면 4가 이 자리에 남게 되는 것이고요. 소괄호에 뭔가 집어넣으면 return을 이용해 뭔가 뱉어내는 것
이게 바로 함수의 입출력 기능입니다.
파라미터가 하나라면 소괄호를 생략가능
var 두배만들기 = x => { return x * 2 }
console.log( 두배만들기(4) );
console.log( 두배만들기(8) );
중괄호 생략이 가능
var 두배만들기 = x => x * 2 ;
console.log( 두배만들기(4) );
console.log( 두배만들기(8) );
arrow function을 쓰면 내부에서 this값을 쓸 때 밖에 있던 this값을 그대로 사용
arrow function은 어디서 쓰든간에 내부의 this 값을 변화시키지 않습니다.
그러니까 바깥에 있던 this의 의미를 그대로 내부에서도 사용하는 함수가 바로 arrow function 이라는 함수입니다.
(이게 장점 4이자 arrow function을 쓰는 핵심 이유입니다.)
https://songji1165.github.io/2019/04/14/Javascript/javascript4(function)/
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=coding-&logNo=221374322048
매개변수(parameter)
자바스크립트에서는 함수를 정의할 때는 매개변수의 타입을 따로 명시하지 않습니다. 함수를 호출할 때에도 인수(argument)로 전달된 값에 대해 어떠한 타입 검사도 하지 않습니다. 함수를 호출할 때 함수의 정의보다 적은 수의 인수가 전달되더라도, 다른 언어와는 달리 오류를 발생시키지 않습니다.
이 같은 경우 자바스크립트는 전달되지 않은 나머지 매개변수에 자동으로 undefined 값을 설정합니다.
매개변수(parameter)란 함수의 정의에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수를 의미합니다. 인수(argument)란 함수가 호출될 때 함수로 값을 전달해주는 값을 말합니다.
http://www.tcpschool.com/javascript/js_function_parameterArgument
공부하다 느끼는 점은 사용자가 정보에 대한 이해가 없다고 가정할때
UX writing처럼 언어가 우리의 사고를 규정하듯이
용어가 어려우면 이해부터 막히는 게 되는 거 같음
그래서 어려운 용어만 잔뜩 있는 자료로 공부하면
이해도 안되고 재미가 없어서 포기하게 되는 거 같음
(다음 프로세스로 진입이 어려워지는 이유같은 거랄지
괜히 친숙한 단어나 문장으로 바꿔가면서 제시하는 게 아니라고 생각함!!)