최근에 나는 내가 정말 거만했다라는것을 느꼈다. 개인 프로젝트를 진행하면서 느낀것은 기본이 없는데도 불구하고, 많은것을 해보고 싶었던 욕심이 컸다라는것을 느꼈다. 그래서 그동안 놓쳤던것을 다시 상기 시키기위해서 이렇게 글을 작성해본다.
함수에대해 다시 알아보도록 하자.
함수는 인풋(parameter)를 받아 기능을 수행하고 아웃풋을 내는 형태이다.
특징으로는
팁
인풋으로 받는 Parameter는 두가지로 나누어 지는데,
1. premitive (number, string, boolean.... value로전달)
2. object (reference로 전달)
function changeName(jin){
jin.name = "coder";
}
const jin = {name:"jin"}
console.log(changeName(jin));
// name: "coder"
라는 값을 얻을수있다.
이렇게 기본적인 이론과 형태이고, parameter를 받을때, 아래처럼 다양하게 받을수있다
만약에, 함수가 두개의 인자값을 받지만, 함수 호출시에 하나만의 인자값을 줄때에 받지 않은 인자의 기본값을 설정해 줄수있다.
function good(a, b="기본값") 이런식으로 정해주면된다.
function showMessage(message, from = "unknown"){
console.log(`${message} ${from}')
}
showMessage("안녕하세요")
// "안녕하세요 unknown"
이번에는, 인자가 배열로 들어온다면 쉽게 적용할수있는 방법이다.
...배열 이렇게만해주면된다 정말 쉽다.
function showArg(...args){
for(let i = 0; i<args.length; i++){
console.log(args[i])
// "manner" "maketh" "man"
}
}
showArg("manner","maketh","man")
그런데 값이 배열일때, 반복분으로 그냥 for을 사용하는거 말고, for of, 또는 forEach를 이용하면 더욱 쉽게 값을 얻을수있다.
function showArg(...args){
for(const arg of args){
console.log(arg)
// "manner" "maketh" "man"
}
}
showArg("manner","maketh","man")
const args = ["manner", "maketh", "man"];
args.forEacth((arg) => console.log(arg));
// "manner" "maketh" "man"
함수는 오브젝트이다. 따라서 변수의 값으로 할당할수있는데, 이때 함수는 Anonymous fucntion(익명), Named function(지정)함수로 할당할수있다.
그리고 지정된 함수를 다른 변수에도 할당할수있다.
const heyThere = function(){
console.log("hello")
}
const whatsUp = function good(){
console.log("i'm good")
}
const mood = whasUp;
익명의 함수를 쉽게 선언하고 실행할수있는 방법이있는데, 그것이 arrow function 이다.
() => "" 이런식으로 할당해주면된다. 이때 블록을 생략할수있는데, 만약에 블록이 필요할시에는 return 값을 넣어주면된다.
const add = (a,b) => a+b
const add = (a,b) =>{
return a + b;
}