Truthy and Falsy

예를 들어 다음과 같은 함수가 있다고 가정해봅시다

https://images.velog.io/images/feelslikemmmm/post/39528937-7b00-478d-89b8-cc7f533aaef6/1.png

이 상황에서 만약 print 함수가 아래 사진과 같이 파라미터가 비어진 상태로 실행되었다고 가정해봅시다

https://images.velog.io/images/feelslikemmmm/post/06e07e65-9a99-4619-b68d-cac3d2a6e340/2.png

그러면 다음과 같은 에러가 발생하게 됩니다

TypeError: Cannot read property 'name' of undefined

이러한 상황에서, 만약에 print 함수에서 만약에 object 가 주어지지 않았다면, 문제가 있다고 콘솔에 출력해야 한다면 아래와 같이 구현 할 수 있습니다.

https://images.velog.io/images/feelslikemmmm/post/8f5ac7ba-53a9-4868-85c8-04b77e44d6dd/3.png

그런데 만약에 다음과 같이 print 에 null 값이 파라미터로 전달되면 어떨까요?

https://images.velog.io/images/feelslikemmmm/post/9fc5abde-b7ea-4e0c-8f2c-f407a64f229d/4.png

그러면 또 오류가 발생하게 됩니다

TypeError: Cannot read property 'name' of null

그렇다면 또 null일때의 조건을 코드에 추가해줘야 합니다

https://images.velog.io/images/feelslikemmmm/post/e6ba972f-4bda-4ba8-b321-fbc0c8d98419/5.png

이렇게 person 이 undefined 이거나, null 인 상황을 대비하려면 위와 같이 코드를 작성해야하는데요, 여기서 위 코드는 다음과 같이 축약해서 작성 할 수 있습니다

https://images.velog.io/images/feelslikemmmm/post/1a95a407-e02c-44a4-b971-89d12ab5e5d9/6.png

이게 작동하는 이유는, undefined 와 null 은 Falsy 한 값입니다. Falsy 한 값 앞에 느낌표를 붙여주면 true 로 전환됩니다.