티스토리 뷰
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 |