Skip to content

변수

의미 전달이 명확하고 발음 가능한 변수명 사용

나쁨:

javascript
const yyyymmdstr = moment().format("YYYY/MM/DD");

좋음:

javascript
const currentDate = moment().format("YYYY/MM/DD");

동일 개념 변수에 일관된 어휘 사용

나쁨:

javascript
getUserInfo();
getClientData();
getCustomerRecord();

좋음:

javascript
getUser();

검색 가능한 이름 사용

개발자는 평생 작성할 코드보다 더 많은 코드를 읽게 됩니다. 따라서 작성하는 코드의 가독성과 검색 용이성은 매우 중요합니다. 의미 없는 변수명을 사용하면 프로그램 이해에 방해가 됩니다.

검색 가능한 이름을 사용해야 하며, buddy.jsESLint의 no-magic-numbers 규칙과 같은 도구로 명명되지 않은 상수를 식별할 수 있습니다.

나쁨:

javascript
// What the heck is 86400000 for?
setTimeout(blastOff, 86400000);

좋음:

javascript
// Declare them as capitalized named constants.
const MILLISECONDS_PER_DAY = 60 * 60 * 24 * 1000; //86400000;

setTimeout(blastOff, MILLISECONDS_PER_DAY);

설명적 변수 활용

나쁨:

javascript
const address = "One Infinite Loop, Cupertino 95014";
const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/;
saveCityZipCode(
  address.match(cityZipCodeRegex)[1],
  address.match(cityZipCodeRegex)[2]
);

좋음:

javascript
const address = "One Infinite Loop, Cupertino 95014";
const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/;
const [_, city, zipCode] = address.match(cityZipCodeRegex) || [];
saveCityZipCode(city, zipCode);

암시적 의미 매핑 피하기

암시적 표현보다 명시적 표현이 우선입니다.

나쁨:

javascript
const locations = ["Austin", "New York", "San Francisco"];
locations.forEach(l => {
  doStuff();
  doSomeOtherStuff();
  // ...
  // ...
  // ...
  // Wait, what is `l` for again?
  dispatch(l);
});

좋음:

javascript
const locations = ["Austin", "New York", "San Francisco"];
locations.forEach(location => {
  doStuff();
  doSomeOtherStuff();
  // ...
  // ...
  // ...
  dispatch(location);
});

불필요한 문맥 중복 추가 금지

클래스/객체 이름에서 이미 정보를 제공하는 경우 변수명에 동일 내용을 반복하지 마세요.

나쁨:

javascript
const Car = {
  carMake: "Honda",
  carModel: "Accord",
  carColor: "Blue"
};

function paintCar(car, color) {
  car.carColor = color;
}

좋음:

javascript
const Car = {
  make: "Honda",
  model: "Accord",
  color: "Blue"
};

function paintCar(car, color) {
  car.color = color;
}

단락 평가 또는 조건문 대신 기본 매개변수 사용

기본 매개변수(default parameters)는 단락 평가(short circuiting)보다 코드를 깔끔하게 합니다. 단, undefined 인수에만 기본값이 적용되며 '', "", false, null, 0, NaN 등의 "falsy(거짓으로 판정되는)" 값은 기본값으로 대체되지 않습니다.

나쁨:

javascript
function createMicrobrewery(name) {
  const breweryName = name || "Hipster Brew Co.";
  // ...
}

좋음:

javascript
function createMicrobrewery(name = "Hipster Brew Co.") {
  // ...
}