function name(param1,param2){
//todo 내용들
return;
}
함수하나당 한가지 일 만 할수있게 정의하는게 나중에 큰 프로젝트를 하든 뭐를 하든 보기 쉽고 고치기 쉬워진다.
//bad
function createCardAndPoint(){
}
//good
function createCard(){
}
function createPoint(){
}
함수이름 정의 할때 동사로 정의 하는것을 추천한다
함수선언문(fuction declation)은 hoisting 이 가능함 이렇게 선언하면 JS에서는 함수가 선언되면 제일 위로 알아서 올려주기 때문에 앞에다가 호출에도 가능하다.
printMessage(message);// 이렇게 앞에서 호출이 가능하다
function printMessage(message){
console.log(message);
};
function changeName(obj){
obj.name='coder';
};
const ellie={name:'ellie'};
changeName(ellie);
console.log(ellie) // {name:'coder'};
function printAll(...args){
for(let i=0;i<args.length;i++){
console.log(args[i]);
}
// 다른방법
/*
1.for(const arg of args){
console.log(arg);
}
2.args.foreach((arg)=>console.log(arg));
*/
};
printAll('dream','coding','ellie');
//...args 는 배열을 입력받는걸로 인식된다.
쉽게 생각해서 {}(block)안에서는 block안에있는 변수를 볼수있고
block밖에서는 block안에있는 변수를 볼수가없다(호출이나 쓸수가 없다).
함수 표현식(function expression) 은 hoisting 불가능하다 그래서 뒤에다가 호출이 가능함.
const print = function (){
console.log('print');
//anonymous function
};
print();
// print 출력
const printAgain = print;//다른변수에도 할당 가능함.
printAgain();
function randomQuiz(answer,printYes,printNo){
if(answer === "love u"){
printYes();
}else{
printNo();
}
};
const printYes = function(){
console.log('yes');
};
const printNo = function(){
console.log('no');
};
randomQuiz("wrong",printYes,printNo);
randomQuiz("love u",printYes,printNo);
항상 anonymous function 입니다 함수를 간단하게 만들기 위함.
const simplePrint = function(){
console.log('simpleprint');
};
const simplePrint = () => console.log('simpleprint');//이런식으로 표현가능.