JavaScript

자바스크립트 5. Arrow Function

Son 2022. 1. 29. 16:03

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