티스토리 뷰

Javascript

함수 function

변기원 2021. 12. 8. 01:32

1. 함수 선언하는 법. function sum(x,y){x+y} 이런식으로 

 

2. 인자의 디폴트 값 배정하기

function showMessage(message, from = "unknown") {     // <- 디폴드값 배정한거
  console.log(`${message} by ${from}`);
}
showMessage("hi")

이렇게 하면 hi unknown 출력 됨.from의 디폴트가 unknown으로 배정된 것.

 

3. 나머지 매개변수

function printAll(...args) {
  for (i = 0; i < args.length; i++) {
    console.log(args[i]);
  }
  for (const arg of args) {
    console.log(arg);
  }
}
printAll("dream", "coding", "ellie", "yunbok");

i는 0번째부터 시작해서 args.length만큼. 주어진 나머지매개변수의 길이만큼, 즉 몇개가 주어지든 그만큼 반복한다는 뜻. 

for(const arg of args)는 나머지 매개변수의 변수 전부 반복.

 

4. Local Scope (밖에서는 안이 보이지 않고, 안에서는 밖을 볼 수 있다.)

let globalMessage = "global";
function printMassage() {
  let message = "hello";
  console.log(message);
  console.log(globalMessage);
  }
printMassage();

함수 안에서 선언된 message 변수는 지역변수. 함수 밖에서는 볼 수 없다. 하지만 globalMessage 변수는 전역변수로 함수 안에서도 볼 수 있다.

let globalMessage = "global";
function printMassage() {
  let message = "hello";
    console.log(message);
    console.log(globalMessage);
    function printAnother() {
      console.log(message);
      let childmessage = "hello";
    }
    console.log(childmessage);
  }
printMassage();

printAnother 함수에서 messager변수는 부모함수에 있어서 불러올 수 있지만 childmessage 는 밖에서 볼 수 없다.

이게 스코프다. 이게 스코프다? 갑자기 이렇게 결론을 내려주시면... 스코프가 뭐라고 이해해야할지?

엄.. 일단 뭔가 더 넓은 반경. 부분집합 이런 이미지가 그려지는데?

나중에 더 이해해보자

 

5. Function expression
 a function declaration can be called ealier than it is defined.(hoisted)
 a function expression is created when the execution reaches it.
 
function add(a,b){
 console.log(a+b);
}
이렇게 선언된 함수는 호이스팅 가능. 예를들면 저 위에 add(1,2)라고 넣으면 3이 출력될것임.
 
const print = function () {
console.log("print");
};
print();
이렇게 표현된 함수는 호이스팅이 안되서 저 위에 print()가 들어가면 에러뜸.
 
 

6. 콜백함수(많이 들어봤는데)

function randomQuiz(answer, printYes, printNo) {
  if (answer === "i love you") {
    printYes();
    } else {
      printNo();
      }
}
randomQuiz("i love you", printYes, printNo);
randomQuiz("i hate you", printYes, printNo);

answer 정답에 따라 맞으면 printYes, 틀리면 printNo 콜백함수를 지정하여 실행. 

매개변수로 넘겨받은 함수는 일단 넘겨받고, 때가 되면 나중에 호출(called back)한다는 것이 콜백함수의 개념이다.

라고 한다. 

'Javascript' 카테고리의 다른 글

객체 Object. computed property  (0) 2021.12.09
Class. 상속과 다양성  (1) 2021.12.09
Class. Getter and Setter?  (0) 2021.12.08
12월7일 과제  (0) 2021.12.08
루프? 반복적으로 시행한다고? 엄..그래..  (2) 2021.12.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함