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