변수를 선언하다 보면 const
로 선언할 수 없는 것 처럼 보이는 다음과 같은 상황이 있다.
let formClassStr = 'form-group ';
if (!this.state.shouldWaitForError && dirty && invalid) {
formClassStr += 'has-error';
}
하지만 여기서 IIFE(Immediately Invoked Function Expression)을 사용하면 아주 간단하게 const로 바꿀 수 있다.
const formClassStr = (() => {
let tempClassStr = 'form-group ';
if (!this.state.shouldWaitForError && dirty && invalid) {
tempClassStr += 'has-error';
}
return tempClassStr;
})();
요즘 대세는 immutable이잖아?ㅎㅎ. 최대한 const
로 떡칠을 하고 싶다는 생각에 꾀주머니를 굴려보니 보기는 좀 더러워도 결과는 만족스럽다.
//1
const formClassStr = !this.state.shouldWaitForError && dirty && invalid ? 'form-group' : 'form-group has-error';
//2
/* eslint-disable no-nested-ternary */
const baseExchangeRate =
rc === 'PH' ? rates.php_krw :
rc === 'VN' ? rates.vnd_krw :
rc === 'ID' ? rates.idr_krw :
rc === 'JP' ? rates.jpy_krw : null;
/* eslint-enable no-nested-ternary */
더 생각해봤는데 삼항 연산자로도 가능한 것 같다.