여러번 재사용이 가능.
function name(param1,param2){body... return ..}```
function print(){
return console.log("Hello");
}
위의 함수는 의미없는 함수. 계속 같은 값만 반복되기 때문.
fucntion print(message){
return console.log(message);
}
위와 같이 parameter를 활용하여 함수를 작성해 주면 좀 더 범용적으로 사용 가능하다!
Object를 function의 parameter로 전달하게 되면 메모리에 변경된 값의 reference를 저장. reference는 해당 값을 가리키는 '주소' 라고 생각하자!
function changeName(obj){
obj.name = 'monkey';
}
const animal = {name:'bird'};
changeName(animal);
console.log(animal.name);
function example(name, age = 'unknown'){
console.log(`${name} +은 ${age}살`);
}
example('olaf');
function printAll(...args){
for(let i; i<args.length;i--){
console.log(arg[i]);
}
printAll('apple','mango','banana');
좋은 코드 작성습관을 기르자!
function badFunction(num){
if(num.point > 10){
// blah blah
}
}
function goodFunction(num){
if(num.point <=10){
return;
}
// logic...
}
함수는 위에서 말한 바와 같이 변수로 지정하여 사용 할 수 있다.
const person = function(){
console.log('check');
}
person(); //변수를 함수처럼 사용 가능!
function sum(num1,num2){
return num1+num2
}
요런 방식이 function declaration
function expression 방식을 사용해 원하는 함수 원하는 시점에 호출 가능
function quize(firstQuize,secondQuize,result){
if(firstQuize === 'monkey'){
secondQuize();
}else{
result();
}
}
//anonymous function
const secondQuize = function(){
console.log('yes')
}
//named function
const result = function print(){
console.log('탈락');
}
quize('monkey',secondQuize, result);
quize('wrong',secondQuize,result);
함수를 더욱 간결하게 사용할 수 있다.
const example = function(){
console.log('숫자출력');
}
//arrow function으로 변환
const example = ()=> console.log('숫자출력');
const sum = function(a,b){
return a+b
}
// arrow function
const sum = (a,b)=>a+b;
(function hello(){
console.log('hello');
})();
함수 전체를 묶어주고() 사용하면 선언과 동시에 호출이 이루어 진다! 참고 ㅎㅎ