🤔 이번 시간에는 자바스크립트 클린코드를 공부해보았다!
1. 변수
-무의미한 변수명은 지양하자
-상수를 그대로 쓰지 말고 변수에 할당하자
- 변수의 의도를 나타내자
- 문맥상 중복되는 말은 제외하자
- 매개변수에 기본값을 지정하자
(1) 무의미한 변수명은 지양하자
- 변수명을 지을 때, 해당 변수가 어떤 데이터를 담고 있는지 명시적으로 적어야 한다.
- 아래 예시는 음식리스트를 담고 있는 배열이다.
- 예시1처럼 변수를 선언했을 때, 다른 개발자는 이 변수가 어떤 데이터를 담고 있는지 쉽사리 알기 어렵다.
// 예시1
const aa = ['apple', 'orange', 'lemon']
예시2와 같이 해당 데이터를 표현할 수 있는 명시적인 이름으로 지정하자.
// 예시2
const foods = ['apple', 'orange', 'lemon']
(2) 상수를 그대로 쓰지 말고 변수에 할당하자
window
의 너비에서 사이드바의 너비인 255을 빼는 코드를 작성해보았다.
// 예시1
const width = window.innerWidth - 255;
- 코드를 작성한 사람은 255가 사이드바 너비라는 걸 알지만, 다른 개발자는 이게 사이드바 너비인지 알 수 없다.
- 그렇기 때문에 이와 같은 상수는 별도의 변수로 선언해주는 게 좋다.
// 예시2
const SIDEBAR_WIDTH = 255;
const width = window.innerWidth - SIDEBAR_WIDTH;
(3) 변수의 의도를 나타내자
personInfo
는 홍길동이라는 사람의 이름, 나이, 거주지 데이터를 담고 있는 배열이다.
const personInfo = ['홍길동', 32, '서울'];
- 만약 우리가 홍길동의 정보 중 이름, 나이만 출력하고 싶다면 어떻게 작성할 수 있을까?
- 예시1처럼 배열의 인덱스를 바로 사용할 수도 있다.
// 예시1
console.log(personInfo[0], personInfo[1]);
- 하지만 예시1처럼 작성하면 코드만 보고 출력하는 데이터를 유추하기는 어렵다.
- 이 경우, 각각 변수를 선언하여 변수의 의도를 나타낼 수 있다.
const [name, age] = personInfo;
console.log(name, age);
(4) 문맥상 중복되는 말은 제외하자
catInfo
변수에 고양이의 나이, 이름, 색상값을 담고자 한다.- 예시1은 나이, 이름, 색상을 각각
catAge
,catName
,catColor
로 지정했다.
// 예시1
const catInfo = {
catAge: 5,
catName: 'Lila',
catColor: 'black'
}
- 하지만 우리는
catInfo
라는 변수명을 통해 해당 객체가 고양이에 대한 정보를 가진다는 걸 알 수 있다. - 그렇기에 키값에
cat
을 붙이지 않고, 아래와 같이 선언할 수 있다.
// 예시2
const catInfo = {
age: 5,
name: 'Lila',
color: 'black'
}
(5) 매개변수에 기본값을 지정하자
printName
함수는name
를 인자로 받아, 이름을 출력해주는 역할을 한다.- 이때 인자가 넘어오지 않는다면
None
을 출력하도록 했다.
function printName(name) {
console.log(name || 'None')
}
- JS에서는 기본 매개변수를 정의할 수 있기에 해당 방법을 사용해 기본값을 정의하는 게 좋다.
function printName(name = 'None') {
console.log(name)
}
해당 링크로 이동하면 더 많은 정보를 알 수 있습니다 :)
반응형
'개발 기술 > 개발 이야기' 카테고리의 다른 글
Mock Service Worker (feat. vue) (0) | 2022.02.03 |
---|---|
indexedDB에 대해 알아보자! (0) | 2022.01.24 |
디자인 패턴2, 모듈 패턴이란? (0) | 2022.01.12 |
이중배열(2d array)에서 최고, 최저값 찾기 (0) | 2022.01.02 |
[JS] 호이스팅(hoisting) (0) | 2021.12.21 |
댓글