뭔가 머리속으로는 알겠는데 설명을 위해 글로 풀라고 하면 뭔가 너무 아리송한 주제인 것 같다.
비교연산자로 true인지 false인지는 내 관심 밖이라서 그냥 그 자체가 궁금하다.
내가 생각하는 null은 의도적으로 값이 비어있다는 뜻을 의미하는 것 같고
undefined는 값이 아무것도 부여되어 있지 않다.라고 생각을 하고 있다.
왜냐하면 엄청 단순한 예를 찾아볼 수 있는데
BBam이라는 함수에는 한개의 인자를 받아 그 인자에 +1을 하는 명령이 돌아간다.
하지만? 값을 되돌려주지 않기 때문에 저 안에서만 돌아가고 BBam()이라는 함수에는 값이 하지 않기 때문에 underfined라는 값을 돌려주게 되는데
이것은 두개의 차이라고 생각한다.
Null이라는 값이 의도적으로 부여하지 않는 이상 생기지 않는게 아닌가? 라는 생각을 계속 하고 있다.
무언가 연산을 하는 과정 중에서 나올 수 있는 다양한 것들이 존재할텐데.
값이 없으면 underfined가 나올 것이고
숫자가 아니라면 NaN이 나올 것이며
숫자라면 숫자가 나오고 문자열이면 문자열이 나올테지만
결과값으로 null이 나오는 경우를 지금까지 본 적이 없어서..... 으으음
좀 더 배워보고 알아봐야할 것 같다. 클로저라는 개념을 알게되면 뭔가 나오긴 한다는 것 같기도 하고... 아직은 내 머리속 디비가 모자르다