null - 파이썬에서의 None, C++ 에서의 nullptr 과 같음
undefined - 초기화된 적이 없다. 이전에 값이 있었는지 없었는지도 모르는 null 과는 다름. (예: 객체에서 없는 프로퍼티를 불러오면 undefined를 반환)
>> 따라서 undefined === null 하면 false 를 반환한다.
>> 그러나 undefined == null 하면 true 를 반환한다.
>> 그런데 null 을 숫자로 바꾸면 0이지만 undefined를 숫자로 바꾸면 NaN 이다.
>> 따라서 new Number(null) == new Number(undefined) 는 false 를 반환한다.
NaN - 숫자가 아니라는 뜻. 숫자가 들어가야 하는 부분에 다른 값이 들어간다면 NaN으로 치환된다.
>> 그런데 이 미친새끼는 NaN === NaN 하면 false 를 반환한다 (숫자가 아닐 뿐 이론적으로는 다른 값이므로)
>> 따라서 NaN 은 isNaN() 을 써야만 확인할 수 있다
>> typeof(NaN) 은 number 를 반환한다
>> isNaN() 에 다른 객체나 문자열 등, 숫자가 아닌 아무거나 넣어도 true를 반환한다. 숫자가 아니니까...
정신 나갈거 같애!!!
nan은 js탓이 아니라 ieee754가 원래 그럼 - dc App
그게 아니라 null==undefined인데 null은 0으로 바뀌고 undefined는 nan으로 바뀌는게 문젠거 아니야 둘다 nan으로 바뀌던가 둘다 0으로 바뀌는게 아니라
nan만 떼놓고 따지면 그렇다구요 - dc App
NaN은 비교연산에서 무조건 false임
그럼 != 로 비교해도 false 나오냐?
아 !=는 예외임 ==가 false라 !=는 true나옴
악으로 깡으로 - dc App
엄밀하면 좋은 거 아닌가요? ㅎㅎ
막상 실무에서 쓸데가 없음
이상하게 자바는 nan == nan을 참이라고 했던거 같은데
자바는 nan이 없는데..
5%0.0 - dc App
ㄴ와 ㄹㅇ이네 Exception 던질 줄 알았는데 NaN 나옴
ㄴ 다시는 좆만한 지식으로 깝치지 않겠습니다
difined는 대체 머임
엔진 관점에선 필요한 개념이긴 함
nan은 그어떤값하고 비교해도 false다