
C언어와 Java에 익숙한 나는 undefined라는 값이 처음에는 황당했다. 알고리즘 문제 중 배열 index의 앞, 뒤 값을 비교하는 문제가 있었는데 C언어에 익숙한 나는 지정된 배열 크기 밖의 값을 비교하지 않도록 예외처리를 해주었다. 그런데..!! 옆에 있던 친구는 굳이 예외처리를 해주지 않았음에도 불구하고 같은 값이 나오지 않는 것인가?!!🫢 언제나 주어진 배열 크기를 벗어나면 OutOfBoundary 에러와 마주했던 나는 경악을 금치 못했다. 너무 기존 언어들에 익숙해진 탓인지 상상도 못했던 부분.. 대체 왜?? 를 외치며 하나하나 찍어보았더니, 마지막 값과 비교된 값은 'undefined'. 그래서 비슷할 듯 하면서 다른 undefined와 null의 차이점을 정리해보도록 하겠다.
아래 이미지는 찾아보다가 너무 적절한 표현이어서 가져와봤다. 그런데 실생활에서 나에게 0이나 null인 상황이 오지 않기를..😂

선언된 변수 내부의 값을 확인하였을 때, 값이 null이라면 변수가 선언되고 null이라는 값이 주어진 상태이다. 만약 undefined라면 변수는 선언되었지만 아무런 값이 저장되지 않은 상태이다. 즉, null일 경우에는 직접 이 변수에는 아무런 값이 없어 라고 이야기 해주는 것이지만 undefined는 아무것도 진행되지 않은 상태라고 보면 된다. 따라서 개발자가 의도적으로 아무런 값이 들어있지 않은 변수를 선언하여 개발하려는 것이 아니라면 undefined를 사용하는 것은 부적절하다.