클린코드 자바스크립트 4-1 분기 다루기(값식문, 삼항 연산자)
Clean Code JS 강좌는 여러 절로 구성되어 있습니다.
- 클린코드 자바스크립트 1-1 변수 다루기(let & const 사용, function scope & block scope)
- 클린코드 자바스크립트 1-2 변수 다루기(전역 공간 사용 최소화,임시 변수 제거하기)
- 클린코드 자바스크립트 1-3 변수 다루기(호이스팅)
- 클린코드 자바스크립트 2-1 타입 다루기(타입 검사)
- 클린코드 자바스크립트 2-2 타입 다루기(undefined & null, eqeq 줄이기)
- 클린코드 자바스크립트 2-3 타입 다루기(형변환 주의하기, isNaN)
- 클린코드 자바스크립트 3-1 경계 다루기(min-max,begin-end,first-last,접두사와 접미사, 매개변수 순서가 경계)
- 클린코드 자바스크립트 4-1 분기 다루기(값식문, 삼항 연산자)
- 클린코드 자바스크립트 4-2 분기 다루기(truthy & falsy, 단락 회로 평가)
- 클린코드 자바스크립트 4-3 분기 다루기(else if & else 피하기, Early Return, Default case 고려하기)
- 클린코드 자바스크립트 4-4 분기 다루기(Default case 고려하기, Nullish coalescing operator, 드모르간 법칙)
- 클린코드 자바스크립트 5-1 배열 다루기(JS의 배열은 객체다, Array.length, 배열 요소에 접근하기)
- 클린코드 자바스크립트 5-2 배열 다루기(유사 배열 객체, 불변성, for문 배열 고차 함수로 리팩토링)
- 클린코드 자바스크립트 5-3 배열 다루기(배열 메소드 체이닝 활용, map vs forEach, continue&break)
- 클린코드 자바스크립트 6-1 객체 다루기(Object Destructuring, Object.freeze)
- 클린코드 자바스크립트 6-2 객체 다루기(Prototype 조작 지양하기, hasOwnProperty, 직접 접근 지양하기)
- 클린코드 자바스크립트 7-1 함수 다루기([함수,메서드,생성자], argument & parameter,복잡한 인자 관리하기)
- 클린코드 자바스크립트 7-2 함수 다루기(default value, Rest Parameters, void & return, 화살표 함수)
- 클린코드 자바스크립트 7-3 함수 다루기(Callback Function, 순수 함수, Closure)
분기 다루기 😎
값식문👍
고차함수 활용 (map,filter,reduce)
- 식이 들어올 자리에 값이 들어올 수 있는가?
- 값이 들어올 자리에 식이 들어올 수 있는가?
- JSX
// 틀린 예
<div id={if (condition) {'msg'}}>Hello World!</div>
// transfiling
// Is transformed to this JS
// 틀린 예
ReactDOM.render(React.createElement('div',{id: if(contion) {'msg'}}, 'Hello World!'));
const obj = {id : if(condition) {'msg'}}
// 옳은 예
ReactDOM.render(<div id={condition? 'msg' : null}> Hello World!</div>,moundMode);
// 틀린 예
{
() => {
const rows = [];
for (let i = 0; i < objectRows.length; i++) {
rows.push(<ObjectRow key={i} data={objectRows[i]} />);
return rows;
}
};
}
// 옳은 예
{
objectRows.map((obj, i) => {
<ObjectRow key={i} data={obj} />;
});
}
// 틀린 예
{
() => {
if (contidionOne) return <span>One</span>;
if (contidionTwo) return <span>Two</span>;
else conditionOne;
return <span>Three</span>;
};
}
// 옳은 예
{
conditionOne && <span>One</span>;
}
{
contidionTwo && <span>Two</span>;
}
{
!contidionTwo && <span>Three</span>;
}
삼항 연산자👍
// 코드를 해석하기 어렵다.
function example() {
return condition1
? value1
: condition2
? value2
: condition3
? value3
: value4;
}
// if else 반복
function example2() {
if (condition1) {
return value1;
} else if (condition2) {
return value2;
} else if (condition3) {
return value3;
} else {
return value4;
}
}
// Switch 문 이용하는 것이 유용하다.
function example3() {
switch (key) {
case condition1:
break;
case condition2:
break;
case condition3:
break;
default:
break;
}
}
const example = condition ? (a === 0 ? "zero" : "positive") : "negative";
const welcomeMessage = (isLogin) => {
const name = isLogin ? getName() : "이름없음";
return name;
};
const welcomeMessage = (isLogin) => {
if (isLogin) {
return getName();
}
return "이름없음";
};
- 삼항연산자를 이용해 값을 만들어 변수로 만들 때 사용
- 함수가 내뱉는 값을 반환하는 간단한 식일 때(return) 사용
function alertMessage(isAdult) {
isAdult
? alert("입장이 가능합니다.")
: alert("입장이 불가능합니다.")
}
function alertMessage(isAdult) {
if(isAdult) {
alert("입장이 가능합니다.")
} else {
: alert("입장이 불가능합니다.")
}
}
Solution🌼
삼항 연산자 사용할 때
- 좌항 우항을 따졌을 때
- 3개 피연산자를 사용할 때
- 조건? 참:거짓