Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 불변식
- react native bridge
- IAP
- 빌딩 블록
- 정보처리기사
- rniap
- 정처기 자격
- HTML
- typeScript
- Aggregate
- react native 내부 구조
- 이벤트 시스템
- rn
- BOUNDED CONTEXT
- js
- nextjs사용이유
- 애그리게이트
- 타입스크립트
- DDD
- 정처기 준비물
- 속도개선
- react natvie
- std::char_traits<unsigned char>
- 비동기
- nextJS
- nextjs route code
- TS
- in app purchase
- nextjs 라우팅
- 이펙티브 타입스크립트
Archives
- Today
- Total
nika-blog
JS 좋은 코드에 대한 고민 - 1 본문
안녕하세요.
오늘은 좋은 JS 코드에 대해 고민했던 과정을 포스팅 해 보겠습니다.
첫번째 질문: 조건이 두가지로 주어졌을 때 어떻게 작성해야 할까요?
방법 1 : if ~ else if
방법 2 : if ~ else
방법 3 : 삼항연산자
정답은 방법 3. 삼항연산자 입니다.
조건이 두가지인 경우, else if 까지 사용할 필요가 없으며
if문 대신 삼항 연산자를 쓴다면 더 간결하고 깔끔한 코드가 될 수 있을 것 같습니다.
코드 작성 예시를 들어 보도록 하겠습니다.
ternary-operator.js
// Good Code
function getResult(score) {
return scroe > 5 ? good : bad;
}
두번째 질문 : 변수가 null과 undefined 경우를 어떻게 대비해야 할까요?
방법 1 : if문 사용
function-if.js
function printMessage(text) {
let message = text;
if(text == null || text == undefined) {
message = 'Nothing to display'
}
console.log(message);
}
방법 2 : nullish-coalescing 사용
nullish-coalescing.js
function printMessage(text) {
const message = text ?? 'Nothing to display';
console.log(message);
}
방법 3 : 함수의 매개변수값이 없을 때 지정
function.js
function printMessage(text='Nothing to display'){
console.log(text);
}
정답은 방법 2 : nulish-coalescing 입니다.
leftExpr ?? rightExpr
nulishing-coalescing을 사용하면,
leftExpr 이 null과 undefined 일때, rightExpr 이 리턴됩니다.
따라서, null 과 undiefined 를 효과적으로 필터링 할 수 있습니다.
여기서, 질문!
방법 3 이 안되는 이유는 무엇일까요?

방법 3과 같은 경우는 undefined 의 경우에는 잘 필터링 해주지만, null 인 경우에는
그대로 null을 변수가 가지게 되니 잘 기억해 주세요!
개발을 하면서 logicla OR operator 도 상당히 많이 사용하게 되는데요,
간단히 말하면 다음과 같이 동작합니다.
Logical OR operator ||
leftExpr || rightExpr
leftExpr 이 falsy 일때, rightExpr 가 리턴됩니다.
이때 falsy 값에는
- NaN
- null
- undefined
- -0, 0
- false
- '', "", ``
등이 해당됩니다.
'FE > JS' 카테고리의 다른 글
프로미스(Promise) (0) | 2021.09.01 |
---|---|
JS의 동기와 비동기 (0) | 2021.08.30 |
JSON(Javascript Object Notation) (0) | 2021.08.29 |
콘솔(console) 잘 사용하는 법 (0) | 2021.08.23 |
JS DOM 간단 정리 (0) | 2021.08.19 |