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
- git
- truthy
- js
- 논리연산자
- 어웨이트
- 캡쳐링
- 비구조화
- falsy
- icoMoon
- 버블링
- 이벤트리스너
- 자바스크립트기초
- 전역변수
- INCLUDES
- 동기적
- map()
- 지역변수
- Await
- async
- addEventListener
- 코딩공부
- 자바스크립트
- 단락회로평가
- text-align
- 프론트엔드
- 중앙정렬
- 이벤트위임
- 리액트
- 돔조작
- 비동기적
Archives
- Today
- Total
피리부는 사나이 (pied piper)
[JS] 조건문 업그레이드 (연산자) / 단락회로 평가 본문
falsy, truthy 값을 활용해서 유용하게 조건문 처리하기
null과 undefined 예외 처리 간결하게 하는 방법
⚠️ 1. 일반적인 방법 : 논리 연산자 이용하는 방법

❗ 2. 더욱 유용한 방법 (Truthy & Falsy)

"" false, NaN, undefined, null, 0 총 6가지 기본 데이터 타입는 false로 boolean 타입으로 변환해준다.
그 외에는 모두 true로 변환
thus, undefiend와 null을 걸러내는 예외처리를 조건문으로 구현하고자 할 때 ‘!’만 붙여주면
falsy 타입이 들어오면 NOT과 만나서 true로 반환되기 때문에 매우 유용하다.
삼항 연산자
삼항 연산자 중첩해서 사용하기
let score = 66;
score >= 90
? console.log("A+")
: score >= 50
? console.log("B+")
: console.log ("F");
//그러나 가독성이 안 좋다, 웬만해서는 if문으로 바꿔주는 게 좋다.
let score = prompt("당신의 점수를 적어주세요, 숫자형식");
if (score >= 90) {
console.log("A+");
}
else if (score >= 50 {
console.log("B+");
} else {
console.log("F");
};
//가독성이 더 좋다
단락회로 평가
: 비교 연산자를 이용하는 것, 피연산자중에 뒤에 피연산자를 확인할 필요 없이 연산을 끝내버리는 것을
단락회로평가라고 이야기한다.
truthy와 falsy를 사용하면 단락회로 평가를 아주 멋있게 사용할 수 있다.
const getName = (person) => {
const name = person && person.name;
//and 연산자니까 trushy여야 트루시로 넘김 // 이치윤 저장
return name || "객체가 아닙니다";
//or 연산자에서는 하나만 trushy면 이미 truthy하니까 뒤에 볼 것도 없이
// 그냥 이치윤 출력하게 됨
};
let person = null;
const name = getName(person);
console.log(name);
null일때는 어떻게 될까?
//반대로 falsy는
const getName = (person) => {
const name = person && person.name;
//null이기 때문에 name에는 falsy 할당
return name || "객체가 아닙니다";
// falsy가 넘어갔는데 처음부터 falsy니까 name은 넘어가고
// trutshy 속성인 문구 반환
};
조건문 업그레이드
논리 연산자를 사용하는 것에서 멈추지 않고 더 간결하게 할 수 있는 방법이 있다.
예제1 ) 배열 내장 함수 includes(); 사용하기
//인자로 받은 문자열이 포함되어있는지 아닌지로 boolean타입으로
//반환해주는 함수를 만들때 includes(); 메서드를 쓰면 좋다.
function isKoreanFood(food) {
if (["불고기", "떡볶이", "비빔밥"].includes(food)) {
return true;
}
return false;
}
const food1 = isKoreanFood("불고기");
const food2 = isKoreanFood("파스타");
console.log(food1);
console.log(food2);
// 결과 true false true false
예제2) 원하는 나라 입력하면 그 나라 음식 리턴해주는 함수 만들기
⚠️ 1. if를 서서 원시적으로 구현하는 방법

❗ 2. 객체의 점 표기법으로 구현하기
더보기
!Remind!
“프로퍼티 접근법 2가지"
*프로퍼티 : ’키’와 ‘값'쌍으로 구성
점 표기법 : obj.property
대괄호 표기법 : obj[”property”]
const game = {
액션 : "검은 사막",
슈팅 : "배틀필드 온라인",
롤프레잉 : "거상",
전략 : "스타크래프트",
스포츠 : "피파"
};
const pickGame = (gameType) => {
return game[gameType] || "그 장르는 없어요"
};
console.log(pickGame("슈팅"));
console.log(pickGame("스포츠");
console.log(pickGame("낚시게임");
//결과
배틀필드 온라인
피파
그 장르는 없어요
'Java Script' 카테고리의 다른 글
[JS] 대표 비동기 3가지 [콜백, 프라미스, async/await] (0) | 2022.05.02 |
---|---|
[JS] 비 구조화 할당 / Spread 연산 (0) | 2022.04.28 |
[JS] 배열 내장 함수들 정리 [map, includes, indexOf 등] (0) | 2022.04.26 |
[JS] 객체 리터럴 (0) | 2022.04.23 |
[JS] 객체 리터럴 (0) | 2022.04.21 |