함수 안에 매개변수로 함수를 넣을 수 있다.
매개변수 자리에 함수를 넣을 수도 있다.
변수로 함수를 보내기는 하지만, 해당 함수를 호출해야만 실행된다.
많이 쓰이니까 익숙해져야해~~
function repeater(sayHello) {
sayHello()
sayHello()
sayHello()
}
function sayHello() {
console.log('hello world!')
}
repeater(sayHello)
: 배열에서 해당 조건을 만족하는 요소들을 모아 배열로 만든다.
* arrow function -> {}
를 사용하면 return이 있어야 한다. return이 없다면 해당 코드가 반환된다.
const result = words.filter((word) => word.length > 6);
: 배열에서 해당 조건을 만족하는 첫 번째 요소를 찾는다.
const found = array1.find(element => element > 10);
문자는 알파벳 순으로 정렬되지만, 숫자는 맨 앞의 숫자만으로 정렬이 된다. 그래서 숫자 자체로 정렬을 하려면 추가로 적어줘야 한다.
.sort((a, b) -> a - b)
.sort((a, b) -> b - a)
...을 사용하여 해당 요소들을 모두 가져온다.
맨 끝을 나타낼 때 ...rest로 사용한다.
spread와 붙어서 함께 사용한다.
const myName = ["Marina", "Magdy", "Shafiq"];
const [firstName, ...yolo] = myName;
console.log(firstName, yolo);
객체를 뒤집는다. 보통은 객체가 있고, 거기에 해당되는 변수들이 있는데, 여기서는 변수부터 나열하고 객체를 할당한다.
그러면 필요한 요소를 더 간단하게 부를 수 있다.
const obj = {
me: "Eunha",
you: "Momo",
we: "Algo Champion",
};
const { me, you, we } = obj;
console.log(me); // Eunha
(js -> node js -> google engine v8)
single threading
-> 한번에 하나의 코드가 실행된다. 하나가 끝나야 다른 하나를 시작한다.
=> 하나의 코드가 실행하는데 오래 걸리면, 다음 코드를 실행하려면 오래 기다려야 한다.
그래서 이렇게 오래걸려서 실행되지 않을 것 같은 코드를 Web Api로 넘겨서 실행하게 한다. 해당 코드가 끝나면 callback queue로 넣고 event loop이 6ms 마다 돌면서 queue를 확인한다. 끝나는게 있으면 이전의 stack으로 가져온다.
setTimeOut()
이 async 함수다. -> web api로 넘어감.
이렇게 정해지지 않은 함수를 web api로 넘기려면 async function
으로 만들면 된다.