Nov 22-24, 2021

Sung Hyun Hong (Jenny)·2022년 1월 25일
0

자바스크립트 정리

  • 자바스크립트의 모든 데이터는 중첩된 형태로 존재될 수 있다
    • string, number, boolean, null, undefined, symbol

    • another array or function can store as an objected data.

      ⇒ 일급객체

    • 데이트를 저장하고 활용하는데 있어 매우 자유롭고, 고차원적인 기능 구현이 쉬워 현대 프로그래밍 언어가 제공하는 방식

구조분해할당 ( destructing assignment)

  • 변수를 선언하여 그 안에 데이터를 눌러담아 저장하는 것 ⇒ 구조화 (=structured)
  • 그 변수를 쉽게 사용하기 위해 해체하는 것 ⇒ 비구조화 할당(=unstructured)
  • 데이터를 이후에 찾기 쉽도록 명시해 주는 것 ⇒ 구조분해할당

const { textContent } = req.body;

// const textContent = req.body.textContent => 구조분해할당 해제

create() method

: 부모 객체로 하고자 하는 객체인 create() 메서드가 새로운 객체를 생성하는데 역할

const comment = await Comment.create({

userId,

postId,

date,

textContent,

});

//특정 게시물의 댓글의 수

const cmtCount = await Comment.count({

where: {postId}

})

//페이지네이션 1페이지당 몇개를 보여줄지?

const perPage = 4;

//전체 페이지 수

const totalPg = Math.ceil(cmtCount/perPage);

11/24

var, let, const 차이점

  • var, let, const 의 차이점을 알기전에, var 문제점
    • 변수 중복 선언 가능, 예기치 못한 값을 반환
    • 함수 레벨 스코프로 인해 외부에서 선언한 변수는 모두 전역 변수로 지정
    • 변수 선언문 이전에 이전에 변수를 참조하면, 언제나 undefined를 반환
  • let
    • 변수 중복 선언 불가하지만, 재할당 가능
  • const
    • const 와 let 다른점이라면, 반드시 선언과 초기화를 동시에 진행되어야 함
    • 변수 중복 선언 불가하며, 재할당도 불가능, 하지만 객체는 가능함

Math.ceil() ⇒ 소수점 이하를 올림

Math.round() ⇒ 소수점 반올림

Math.floor() ⇒ 소수점 내림

parseInt()

⇒ 문자열 정수를 바꾸는 함수

  • string을 n진법일 때의 값으로 바꿉니다. n은 옵션으로 2부터 36까지 입력할 수 있습니다. 입력하지 않으면 10으로 처리합니다.
  • string의 처리는 parseFloat()와 거의 같습니다.
  • 소수 부분은 버립니다.

startNum 과 lastNum

  • 루프에서 사용하려고 썼던 부분을 conditional 로 복잡하게 처리하지 않고, 변수처리로 쉽게 풀어서 처리하는 것이 효과적임

안 좋은 예시:

Untitled

깔끔한 예시

let startNum = (pageNum - 1) perPage;
let lastNum = pageNum
perPage;

그리고 pageNum ≥ 1 부분은 delete

cmtsList의 respondComments 값을 담아서, 배열의 앞부분과 끝부분을 담아준다.

const cmtsList = [];

for (let i = startNum; i < lastNum; i++){

cmtsList.push(respondComments[i])

}

cmtList === null일 경우, 원리가 작동하지 않아, 필요없는 부분을 삭제함

if (cmtsList === null) {
totalPg = 0
message = "댓글 리스트를 불러오는데 실패 했습니다.";
logger.info(GET /api/posts/${postId}/comments 400 res:${message});
return res.status(400).send({ message });
return res.status(400).send({ message, totalPg });
}

https://www.howdy-mj.me/javascript/var-let-const/

profile
오늘 하루도 열심히!

0개의 댓글