어제 메모장에 적었던 for문과 map 메서드 활용 숙지
// 1번
app.get('/posts-writers', (req, res) => {
for (let i =0; i < posts.length; i++) {
posts[i].작성자 = posts[i].작성자.substring(0, 1) + "XX"
}
------------------------------------------------
// 2번
const writers = posts.map((post) => {
return post.작성자
})
res.send(writers)
// 1. for문으로 배열 뽑아내기
const users = []
for (let i = 0; i < posts.length; i++) {
users.push(posts[i].user)
}
console.log(users)
// 2. map 으로 배열 뽑아내기
const users2 = posts.map((a) => {
return a.user
})
console.log(users2)
// 3. map 으로 배열 뽑아내기 (축약형)
const users3 = posts.map(a => a.user)
console.log(users3)
설정 - 바로가기 키
통신 : 요청 ↔ 응답
get → 얻다
post → 추가
put → 수정
delete → 삭제
object는 자바스크립트과 지원하는 key - value 형식의 객체
json은 문자열인데 json형식에 맞게 쓴 스트링이다.
<숙제>
user와 title, contents 유효성 검사 해보기
app.put / app.delete 해보기
: 자바스크립트의 비동기 처리란 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성을 의미
async function 함수명() {
await 비동기_처리_메서드_명();
}
함수의 앞에 async
라는 예약어를 붙입니다. 그러고 나서 함수의 내부 로직 중 HTTP 통신을 하는 비동기 처리 코드 앞에 await
를 붙입니다. 여기서 주의하셔야 할 점은 비동기 처리 메서드가 꼭 프로미스 객체를 반환해야 await
가 의도한 대로 동작.
일반적으로 await
의 대상이 되는 비동기 처리 코드는 Axios 등 프로미스를 반환하는 API 호출 함수이다.
Exponentiation 의 뜻이 한글로 누승법 이라고 나오던데, 개인적으로 처음 듣는 단어라 영어 단어를 그대로 인용했다.
어쨌든, asterisk(*
) 라고 불리는 이 연산자는 무슨 역할이냐면 Math.pow
와 완전히 같은 기능을 수행한다.
2 ** 3 === Math.pow(2, 3) // 8
-(2 ** 2) === -Math.pow(2, 2) // -4
10 ** -1 === Math.pow(10, -1) // 0.1
여러 개를 중첩해서 사용할 수도 있다.
2 ** 3 ** 4 === Math.pow(2, Math.pow(3, 4))
Javascript는 싱글 스레드 언어라고 들어본 적이 있을 것이다. '싱글' 스레드라 한 번에 하나의 작업만 수행이 가능하다. 반면 Java 나 Python은 멀티 스레드를 지원하여 원하는 코드 로직을 동시에 수행 시키는 멀티 작업이 가능
10분 정도 초반부 강의 수강.
좋은 코드란 가독성이 좋은 간결한 코드