웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > js

if 또는 switch 조건문을 객체로 바꾸어 사용하는 방법

Last Modified : 2019-08-07 / Created : 2017-04-27
5,133
View Count

자바스크립트에서 조건문을 약식으로 표현하거나 one line 표기법 등 매우 유용한 방법들이 많습니다. 그런데 다른 방법도 존재하는데 바로 객체를 사용하는 방법입니다. 정확히는 객체의 프로퍼티를 사용합니다.




# 조건문에서 if, switch 대신에 객체의 프로퍼티 사용하는 방법

객체의 프로퍼티를 사용하면 분기문으로 사용하는 것이 가능합니다. 그럼 간단한 예를 사용해보겠습니다. 먼저 변수 str이 어떤 값을 가졌느냐에 특정 코드를 실행하려고 합니다. 아래는 indexNo라는 변수의 값을 각각 다르게 정하였습니다.
var str = 'is';

if (str == 'web') {
  var indexNo= 0;
}
else if (str == 'is') {
  var indexNo= 1;
}
else if (str == 'free') {
  var indexNo= 2;
}

보시면 str의 값에 따른 분기문이 긴 코드를 가지게됩니다. 물론 위와 같이 3개 정도라면 많지 않지만 만약 10개가 넘어가는 경우를 생각한다면 적지 않겠죠. 이 경우 if문switch로 바꾸면 좀 더 간결하겠지만 역시 만족하기는 어렵습니다.

그럼 위 예제를 객체로 바꾸면 분기문을 대체하는 코드를 작성해 보겠습니다.
var str = 'is';

var condition = {
  web: 0,
  is: 1,
  free: 2
}
var indexNo  = condition[str];

기존보다 코드가 간결하고 직관적입니다. 즉 객체의 key에 해당하는 부분에 변수를 추가해 해당하는 값을 다르게 매핑하는 방법입니다. 물론 이 방식에 익숙하지 않다면 보기 어려울 수 있습니다. 하지만 조건이 늘어날 수록 위와 같이 객체를 활용하는 방법의 장점이 눈에 극명히 드라나게 됩니다. 코드가 훨씬 간결하죠.


! 마치면서

객체를 사용하는 방법은 좋지만 잠시나마 객체타입의 변수를 메모리에 저장해야 하므로 성능에 미세한 영향을 끼칠 수 있겠습니다. 하지만 그 차이가 크지 않고 이득이 많은 방법임은 확실합니다.

Previous

자바스크립트를 사용하여 숫자가 음수인지 양수인지 확인하는 방법은?

Previous

자바스크립트 Date() 객체에 날짜 설정하는 방법