자바스크립트 코드를 축약해서 쓰는 7가지 방법
안녕하세요?
오늘은 자바스크립트 코드 작성에 있어 긴 문장을 간단하게 축약해서 쓸 수 있는 7가지 비법을 소개해 드릴려고 합니다.
다들 아시는 내용일 수 도 있고 하지만, 다시 한번 복습한다는 의미에서 한번 읽어 보시는 것도 좋을 듯 합니다.
1. 문자열 여러 개 체크하기
만약에 여러분이 쿼리로 받은 문자열이 DB에 저장된 값에 속하는지 체크해야 할 때가 있습니다.
이럴 때 사용하는 방법으로는 if 문과 || 연산자를 조합해서 사용할 수도 있겠지만 다음과 같이 하는게 훨씬 빠를 듯 합니다.
긴 버전
// Long-hand
const isInMyDB= (letter) => {
if (
letter === "david" ||
letter === "letterman" ||
letter === "jay" ||
letter === "leno" ||
letter === "sam"
) {
return true;
}
return false;
};
짧은 버전
// Short-hand
const isInMyDB= (letter) =>
["david", "letterman", "jay", "leno", "sam"].includes(letter);
2. 배열은 for-of, 객체는 for-in
배열과 객체를 살펴볼 때 단순 for문을 사용하지 마시고 자바스크립트에 기본 내장되어 있는 for-of, for-in 구문을 사용하시면 좀 더 쉽고 명확하게 코드를 짤 수 있습니다.
For-of
긴 버전
const arr = [1, 2, 3, 4, 5];
// Long-hand
for (let i = 0; i < arr.length; i++) {
const element = arr[i];
// ...
}
짧은 버전
const arr = [1, 2, 3, 4, 5];
// Short-hand
for (const element of arr) {
// ...
}
For-in
긴 버전
const obj = {
a: 1,
b: 2,
c: 3,
};
// Long-hand
const keys = Object.keys(obj);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
const value = obj[key];
// ...
}
짧은 버전
const obj = {
a: 1,
b: 2,
c: 3,
};
// Short-hand
for (const key in obj) {
const value = obj[key];
// ...
}
3. 거짓 체크
타입스크립트가 아니라 자바스크립트를 사용한다면 꼭 해야하는게 타입 체크인데요.
특히, null
,undefined
,0
,false
,NaN
, 그리고 빈 문자열을 체크해서 점검해야 할 때가 있습니다.
이럴 때도 쉽게 할 수 있는 방법이 있죠.
바로 논리 부정연산자인 “!” 를 이용하면 쉽게 쓸 수 있습니다.
긴 버전
// Long-hand
const isFalsy = (value) => {
if (
value === null ||
value === undefined ||
value === 0 ||
value === false ||
value === NaN ||
value === ""
) {
return true;
}
return false;
};
짧은 버전
// Short-hand
const isFalsy = (value) => !value;
4. 삼항 연산자(Ternary operator)
React 개발자라면 꼭 써야하는게 바로 삼항 연산자인데요.
복잡한 if-else 문을 제외하고 삼항 연산자로 코드를 깔끔하게 유지하시기 바랍니다.
긴 버전
// Long-hand
let info;
if (value < minValue) {
info = "Value is too small";
} else if (value > maxValue) {
info = "Value is too large";
} else {
info = "Value is in range";
}
/짧은 버전
// Short-hand
const info =
value < minValue
? "Value is too small"
: value > maxValue ? "Value is too large" : "Value is in range";
5. 함수 호출도 삼항 연산자를
함수 호출도 삼항 연사자를 이용해서 선택적으로 호출 할 수 있습니다.
긴 버전
function f1() {
// ...
}
function f2() {
// ...
}
// Long-hand
if (condition) {
f1();
} else {
f2();
}
짧은 버전
function f1() {
// ...
}
function f2() {
// ...
}
// Short-hand
(condition ? f1 : f2)();
6. switch 문 축약
switch문을 여러개 쓰면 코드가 복잡해 지는데요.
간단하게 쓰는 방법이 있습니다.
긴 버전
const dayNumber = new Date().getDay();
// Long-hand
let day;
switch (dayNumber) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
}
짧은 버전
const dayNumber = new Date().getDay();
// Short-hand
const days = {
0: "Sunday",
1: "Monday",
2: "Tuesday",
3: "Wednesday",
4: "Thursday",
5: "Friday",
6: "Saturday",
};
const day = days[dayNumber];
7. Fallback 값 지정하기
마지막으로 fallback 값을 손 쉽게 지정할 수 있습니다.
긴 버전
// Long-hand
let name;
if (user?.name) {
name = user.name;
} else {
name = "Anonymous";
}
짧은 버전
// Short-hand
const name = user?.name || "Anonymous";
지금까지 자바스크립트 코드 축약 방법에 대해 알아보았는데요.
개인적으로 6번, 7번은 저도 잘 안 쓰던 코드 스타일인데 앞으로는 꼭 적용해야 할 듯합니다.