&& 여러개 사용 시 발생하는 이상한 현상에 대한 고찰

2022. 3. 16. 20:28카테고리 없음

원래 &&는 조건식 2개가 참이면 전부 참으로 판정하는 논리연산자.

그런데 여러개를 사용하면 이상한 현상 발생.

 

&& 기호로 비교할 때 true와 false를 넣는게 아니라 자료형을 넣으면

처음 등장하는 falsy 을 찾아주고 그게 아니면 마지막 값을 남겨줌.

null, undefined, NaN 등등.

1 && null && 3   // null이 남음
undefined && '안녕' && 100  // undefined 남음

 

이걸 약간 exploit 하면 if문을 간략하게 사용 가능.

 

if (변수 && typeof strs === "string") {} 

 

즉, 변수가 falsy(undefined or null)라면 falsy가 남아서 if문이 실행되지 않고,

변수가 falsy값이 아니면 마지막 값을 넘겨주므로 마지막으로 적어준 조건이 실행됨.

변수가 falsy값인 경우를 쉽게 거를 수 있는 문법.