자바스크립트 5. Arrow Function
function changeName(obj){
obj.name ='coder';
}
const son = {name : 'son'};
changeName(son);
console.log(son);
// 3.Default parameters (added in ES6)
function showMessage(message, from) {
console.log(`${message} by ${from}`);
}
showMessage('Hi!');
// 4.Rest parameters (added in ES6)
function printAll(...args){ //args 3개의 값을 담고 있는 배열
for(let i =0;i< args.length;i++){
console.log(args[i]);
}
for (const arg of args) {
console.log(arg);
}
}
printAll('son','coding','son'); //3개의 값을 parameter값으로 넘김
//Local scope
let globalMessage = 'global'; //전역변수
function printMessage(){
let message = 'hello'; //지역변수
console.log(message);
console.log(globalMessage); //가능
}
printMessage();
console.log(message); //에러 불가능
//함수안에서 전역변수는 사용가능하지만 지역변수는 함수밖에서 사용 불가능
//6.Return a value
function sum(a, b) {
return a + b;
}
const result = sum(1,2);
console.log(`sum: ${sum(1,2)}`);
const print = function (){ //함수 function을 print변수에다가 넣고
console.log('print');
};
print(); //print함수 호출
const printAgain = print; //함수를 다시 printAgain에 넣음
printAgain(); // print함수 호출
const sumAgain = sum;
console.log(sumAgain(1, 3));
//Callback function using function expression
function randomQuiz(answer, printYes, printNo){ //파라메터 값으로 함수가 들어오는것
if(answer == 'love you'){
printYes(); //함수호출
} else{
printNo(); //함수호출
}
}
const printYes = function(){ //printYes 함수구현
console.log('yes');
};
const printNo = function print(){ //printNo 함수구현
console.log('no');
};
randomQuiz('wrong', printYes, printNo);
randomQuiz('love you', printYes, printNo);
// Arrow function
// always anonymous
const simplePrint = function (){
console.log('simplePrint');
};
const simplePrint = () => console.log('simplePrint');
const add = (a,b) => a + b;
// IIFE : Immediately Invoked Function Expression
(function hello(){
console.log('IIFE');
})(); //함수를 선언과 동시에 바로 출력해주는것 IIFE