자바스크립트 논리 연산자를 이용한 변수 초기화

얼마 전부터 Node 기반으로 되어 있는 시스템에도 접근할 수 있게 되어서 간단한 일감 정도는 쳐내고 있다. 그러다 문득 다음과 같은 형태의 코드가 많이 사용됨을 알게되었다. 변수명은 예제를 위해서 간략화 시켰다.

1
2
3
var res = makeInfo(data);
var a = (res && res.a) || 'default';
var b = (res && res.b) || 'default';

&&|| 같은 논리 연산자를 사용하여 초기값을 할당하는데 사용한다.
&&은 논리곱 연산자(참조.aspx))라고 불리우는데 피연산자 2개각 모두 true일때만 true를 반환한다. 논리합 연산자(참조.aspx))라고 불리는 ||는 두개의 피연산자 가운데 하나만 true여도 결과로 true를 반환한다.

1
2
3
4
5
var test = function {
return null;
}
var result = test();
var a = result.a;

위의 소스코드를 실행시키면 TypeError: result is null라는 에러 메시지가 출력된다. result.a 대신에 (result && result.a)를 사용하면 오류를 미연에 방지할 수 있다. 자바스크립트의 논리 연산에서 null와 undefined는 false로 간주 하기 때문에 두번째 피연산자로 어떤 것이 오더라도 null을 반환하게 되어 있다.

|| 연산자는 어떤 변수의 디폴트 값을 정해주는 데 사용하곤 한다. 아래 소스 코드의 결과 처럼 말이다.

1
2
3
4
var a = null;
var b = 'B';
var c = a || b;
// "B"

요약 하자면 || 연산자는 디폴트 값을 지정하는데 사용하고, && 연산자는 null 처리 하는데 사용 하면 적절할 것 같다.

references

Maps in ES6 MySQL database 백업을 위한 스크립트 파일 생성 및 스케쥴 등록

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×