//함수 add 정의functionadd(num1, num2){ // add(인자) -> 받아오는 값을 통해서 접근이 가능 return num1 + num2; // 3 + 4}cont sum =add(3,4); //함수 add 호출console.log(sum); // 7
functionadd2(num1, num2){ // add(인자) -> 받아오는 값을 통해서 접근이 가능 return num1 + num2; // 3 + 5}functionprint(){console.log('print');}print(); // 인자를 전달해도 아무런 인풋을 하지 않음// 변경후 (인자를 전달 받음)functionprint(name,age){console.log(`${a}${b}`);}print('ellie',33); constresult=doMore(3,5);console.log(result); // 8
함수는 함수가 정의된곳을 가르키고 있다. 다른변수에 할당되면 똑같은 함수를 가르키고 있기때문에 똑같은 함수를 실행하게된다.
functionadd2(num1, num2){ return num1 + num2;}functiondivide(num1, num2){return num1 / num2;}functionsurprise(operator){constresult=operator(2,3); // 0.6666 divide 를 수행하는것과 동일console.log( result); // 5}suprise(); // 에러발생 operator는 지금 undefinded 상태 이기때문suprise(divide); // divide를 호출하는것과 동일, 함수의 레퍼런스가 복사되서 전달되는 것이다.