함수에 관한 내용
드림코딩 by 엘리님의 5강
함수
: 내가 알고있는 함수와 비슷.
함수 인자로 전달하는 것.
primitive
한 파라미터는 값으로 전달.
object
를 파라미터로 전달하면 참조(reference)에 의해 전달.
function changeName(obj){
obj.name = 'coder';
}
const dahoon = {name: 'dahoon'};
changeName(dahoon);
console.log(dahoon.name);
//출력: coder
입력되지 않은 파라미터 값을 출력할 때 undefined
로 출력되지만 파라미터에서default
값을 지정 가능.
function showMessage(message,from = 'unknown'){
console.log(`${message} by ${from}`);
}
showMessage('HI');
함수의 파라미터를 배열의 형태로 받을 수 있다.
function printAll(...args){
for( let i=0; i<args.length; i++){
console.log(args[i]);
}
for(const arg of args){
console.log(arg);
//for(auto i: args) 같이 쓴다.
}
args.forEach((arg) => console.log(arg));
}
printAll('hi','hello','1');
//배열 형태로 받을 수 있음.
2일차 TIL 참고 (https://velog.io/@yogongman/TIL-JS-2%EC%9D%BC%EC%B0%A8#-block-scope)
함수를
변수처럼 할당 가능.
인자로 전달 가능.
다른 함수의 리턴 값으로 가능.
호이스팅 가능. (선언부 최상단으로)
//arrow function
const simplePrint = function(){
console.log('simple print!');
};
const simpleprint = () => consolg.log('silePrint!');
const add = (a,b) => a + b; // 파라미터, 리턴값
const simpleMultiply = (a,b) => {
// do something more
return a*b; //리턴 값 명시 해주어야함.
}
//IIFE: Immediately Invoked Function Expression
function hello(){
console.log('IIFE');
}
hello(); // 기존의 호출 방법은 선언 후 호출을 했어야함.
(function hello(){
console.log('IIFE');
})();
// 선언과 동시에 호출 가능.