JavaScript에는 기본적으로 'I do n't exist' undefined
와 null
.
프로그래머가 아무것도 할 것이다 할당되지 않은에 속성 undefined
이 될 수있는 속성에 대해,하지만 순서는 null
, null
명시 적으로 할당해야합니다.
나는 한때 원시적 가치와 객체 null
이기 때문에 필요가 있다고 생각했습니다 . 양보 하지 않습니다 . 사실 둘 다 원시 값입니다. 즉 , 둘 다 빈 객체로 변환되므로 생성자 함수에서 반환 할 수도 없고 반환 할 수도 없습니다 (생성자에서 실패를 선언하려면 오류를 발생시켜야합니다).undefined
null
typeof null
'object'
undefined
null
또한 둘 다 false
부울 컨텍스트에서 평가 됩니다. 내가 생각할 수있는 유일한 차이점은 하나는으로 평가되고 NaN
다른 하나 0
는 숫자 컨텍스트에서 평가된다는 것입니다 .
그렇다면 왜 둘 다 undefined
있고 null
이것이 null
속성이 설정되었는지 여부를 찾으려고 할 때 잘못 확인하는 프로그래머를 혼란스럽게한다면 ?
내가 알고 싶은 것은 누군가 대신 null
사용하여 표현할 수없는 사용 이 필요한 합리적인 예가 있는지 여부 undefined
입니다.
그래서 일반적인 합의는 undefined
'그런 재산이 없다 null
'는 의미 이고 '재산이 존재하지만 가치 가 없다'는 의미 인 것 같습니다 .
자바 스크립트 구현이 실제로이 동작을 강제 할 수 있다면 그와 함께 살 수 있습니다. 그러나 undefined
완벽하게 유효한 기본 값이므로 기존 속성에 쉽게 할당하여이 계약을 위반할 수 있습니다. 따라서 속성이 있는지 확인하려면 in
연산자 를 사용해야 hasOwnProperty()
합니다. 다시 한 번 : undefined
및에 대한 별도의 값에 대한 실제 사용은 null
무엇입니까?
undefined
더 이상 사용하지 않지만 원하지 않는 속성 값을 설정 해제하고 싶을 때 실제로 사용 합니다 delete
. null
대신 사용해야합니까 ?
In JavaScript, there are two values which basically say 'I don't exist' - undefined and null.
아니, undefined
그게 다야.
undefined
.