undefined가 모든 것의 주인이고 null이 none인 이유
권리 없다? 저도요
경이로운 개발자가 되려면 우리를 이어받는 개발자가 더 쉽게 접근할 수 있는 수준의 복잡성과 변형을 유지해야 합니다.
null
와 undefined.
의 차이점부터 시작하겠습니다.개체의 변수 또는 속성에 값이 없으면
undefined.
변수가 null,
가 되려면 null 값을 할당해야 합니다.따라서 변수에 이미 값이 없으면 다른 유형으로 다시 선언할 필요가 없습니다. 결국 둘 다 같은 의미입니다.
따라서 자신을 반복하는 것은 무의미합니다.
null
undefined,
또는 0,
와 같은 다른 잘못된 값과 구분하기 위해 ''
및 false.
두 유형을 모두 확인해야 하는 상황이 더 자주 발생합니다.if (value === undefined || value === null) {
// Write some fallback code
}
동일한 "if"문에서 다른 값을 확인하면 어떻게 될까요?
숫자 조합이 폭발하죠?
질문입니다.
document.querySelector('badtagname')
는 무엇을 반환합니까?답변이 어려우시면 스포일러 주의합니다.
스포일러!
돌아간다
null.
자, 그것은 고통입니다.그러나 다음과 같이 무시할 수 있습니다.
const element = document.querySelector('badtagname') || undefined;
이렇게 하면 null 값이 코드의 나머지 부분으로 누출되는 것을 방지할 수 있습니다.
마찬가지로 DOM 트리에서 값을 가져오는 다른 함수도 관리할 수 있습니다.
숫자 값이나 부울로 작업할 때는 주의하십시오.
0
를 undefined.
로 변환합니다.그런 경우에는
typeof
를 사용하십시오.value = typeof value === 'number' ? value : undefined;
이 블로그를 알아내는 동안 친구가 질문을 했습니다.
나는 다른 언어로
null
를 사용하는데 그것은 나에게 친숙하다.게다가
undefined.
에 비하면 4글자에 불과하다.그렇다면 JavaScript에서 계속 사용하지 않겠습니까?
그에 대한 해결책은 하나뿐이었습니다.
개발자로서 우리는 현재 작업 중인 언어나 기술의 방식을 채택해야 합니다.
undefined
는 항상 그 자리에 있을 것입니다.예를 들어
myObject.iDoNotExist,
와 같이 누락되었을 수 있는 일부 속성에 액세스하려는 경우그리고
null
값을 할당하면 뒤죽박죽 엉망이 됩니다.JavaScript는 처음부터 어떤 이유로
null
와 undefined
를 모두 생성했지만 다른 언어는 둘을 구분하지 않습니다. 이에 대한 답변이 있으시면 아래에 댓글을 달아주세요!글쎄요, 대답해야 할 마지막 질문이 하나 있을 것 같습니다.
JSON에서
null
를 사용할 수 있습니까?간단한 답변
undefined
유형은 JSON 구조에 존재하지 않습니다.우리가 할 수 있는 것은 속성
null
에 호버 할당{"someProperty": null}.
하는 것입니다.그러나 속성 someProperty에 값이 없으면 제외하는 것이 좋습니다.
이러한 속성은 추가 이점을 제공하지 않지만 네트워크를 통해 전송되거나 파일에 저장되는 페이로드 크기를 증가시킵니다.
다음 코드는 계속 사용할 추가 검사를 추가할 수 있습니다
undefined.
..eslintrc에 추가하십시오.
{
"plugins": [
"no-null"
],
"rules": {
"no-null/no-null": 2
}
}
그게 다야!
이것으로부터 어떤 가치를 얻었다면 친구들과 공유하고 내가 놓친 것이 있으면 알려주세요!
Reference
이 문제에 관하여(undefined가 모든 것의 주인이고 null이 none인 이유), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sobhandash/why-undefined-is-the-master-of-all-things-and-null-is-none-2h9i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)