Socket.io 모듈을 까보다가 다음과 같은 코드를 발견했다.
test = test || {}
이런 코드는 처음봐서 stackoverflow 에 검색을 해보았다.
나랑 똑같은 질문을 한 사람이 있었다.
답변에는 왼쪽에 있는 변수(test)가 false, undefined, 0, null etc 일 때 오른쪽 값으로 넣는다는 것이다. 그냥 쉽게 다른 언어들에 있는 OR 문을 생각하면 될 것 같다.
var a = undefined;
a = a || {};
console.log("a : "+ a); // "a : [object Object]"
var a = 0;
a = a || {};
console.log("a : "+ a); // "a : [object Object]"
var a = 1;
a = a || {};
console.log("a : "+ a); // "a : 1"
var a = true
a = a || {};
console.log("a : "+ a); // "a : true"
var a = "ㅇㅁㅇㄴㅁㄴㅇ";
a = a || {};
console.log("a : "+ a); // "a : ㅇㅁㅇㄴㅁㄴㅇ"
var a = null;
a = a || {};
console.log("a : "+ a); // "a : [object Object]"
반응형