bool변수
들의 true
/false
를 체크하는 가장 좋은 방법은 무엇일까?const myObject = {
foo1: false,
foo2: true,
foo3: false,
foo4: true
};
이 상황에서 foo1
과 foo3
만 false
인지 판단하기 위해서 if(!foo1 && !foo3)
의 조건문을 쓰기만 하면 될까? 아니다
왜냐면 자바스크립트에는 falsy
값과 truthy
값이 있기 때문이다. 위 상황에 foo3의 값이 null이었어도 null은 falsy
값이기 때문에 false
로 취급되어 위에서 !foo3 = true
가 되어버린다.
심지어, myObject에 foo3가 없는경우 myObject.foo3
는 undefined
가 되어 !myObject.foo3 -> true
가 되어버린다.
그리고 지금은 변수가 4개라서 괜찮은데 변수가 2만개라면? 조건문 사용이 불가능하다.
true
or false
임을 찾는 방법엔 뭐가 있을까?const hasFoo2andFoo4 = {
foo1: false,
foo2: true,
foo3: false,
foo4: true
}
const hasFoo3andFoo4 = {
foo1: false,
foo2: false,
foo3: true,
foo4: true
}
// ... 나머지 경우의 수 ...
// 그 후에
if (isEqual(myObject, hasFoo2andFoo4)) {
// 오브젝트가 Foo2와 Foo4만 가지고 있는지 알 수 있습니다.
}
(1).toStirng(2); // 1
(2).toString(2); // 10
(3877494).toString(2); // 1110110010101001110110