질문 : null vs. undefined 및 == 및 ===의 차이점에 대한 JavaScript 검사
null
이거나undefined
경우 어떻게 확인null
과undefined
의 차이점은 무엇입니까?==
와===
의 차이점은 무엇입니까? (Google에서 "==="를 검색하기 어렵습니다)
답변
null
이거나undefined
경우 어떻게 확인합니까?
변수가 null
if (a === null)
// or
if (a == null) // but see note below
a
가 undefined
경우 후자도 참이됩니다.
undefined
:
if (typeof a === "undefined")
// or
if (a === undefined)
// or
if (a == undefined) // but see note below
...하지만 마지막 것은 모호하다는 점에 유의하십시오. a
가 null
경우에도 마찬가지입니다.
이제 위의 내용에도 불구하고 이를 확인하는 일반적인 방법은 거짓이라는 사실을 사용하는 것입니다 .
if (!a) {
// `a` is falsey, which includes `undefined` and `null`
// (and `""`, and `0`, and `NaN`, and [of course] `false`)
}
이것은 사양의 ToBoolean 에 의해 정의됩니다.
null
과undefined
의 차이점은 무엇입니까?
둘 다 일반적으로 무언가가 없음을 나타내는 데 사용되는 값입니다. undefined
는 더 일반적인 변수로, 다른 값이 할당 될 때까지 변수의 기본값으로 사용되며, 함수가 호출 될 때 제공되지 않은 함수 인수의 값으로 사용됩니다. 소유하지 않은 속성에 대한 개체입니다. 그러나 이러한 모든 상황에서 명시 적으로 사용할 수도 있습니다. (속성이없는 객체와 값이 undefined
undefined
함수를 호출하는 것과 해당 인수를 완전히 해제하는 것 사이에는 차이가 있습니다.)
null
undefined
보다 약간 더 구체적입니다. 빈 개체 참조입니다. 물론 자바 스크립트는 느슨한 형식이지만 자바 스크립트가 상호 작용하는 모든 것이 느슨한 형식은 아닙니다. 브라우저의 DOM과 같은 API에 비어있는 객체 참조가 필요한 경우 undefined
아닌 null
을 사용합니다. 마찬가지로 DOM의 getElementById
작업은 유효한 객체 참조 (DOM 요소를 찾은 경우) 또는 null
(확인하지 못한 경우) 중 하나를 반환합니다.
흥미롭게도 (아니면) 그들은 그들 자신의 유형입니다. 즉, null
은 Null 유형 undefined
는 정의되지 않은 유형의 유일한 값입니다.
"=="와 "==="의 차이점은 무엇입니까?
그들 사이의 유일한 차이점은 ==
는 일치시킬 값을 얻기 위해 유형 강제를 수행하고 ===
는 그렇지 않다는 것입니다. 그래서 예를 들어 "1" == 1
, 때문에 사실 "1"
로 강제 변환 1
. 그러나 "1" === 1
은 유형이 일치하지 않기 때문에 false입니다. ( "1" !== 1
===
의 첫 번째 (실제) 단계는 "피연산자의 유형이 동일합니까?"입니다. 대답이 "아니오"이면 결과는 false
입니다. 유형이 동일하면 ==
는 일을 정확히 수행합니다.
유형 강제 변환은 매우 복잡한 규칙을 사용하며 놀라운 결과를 가져올 수 있습니다 (예 : "" == 0
은 참).
더 많은 사양 :
출처 : https://stackoverflow.com/questions/5101948/javascript-checking-for-null-vs-undefined-and-difference-between-and
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
IMG와 CSS 배경 이미지의 적절한 사용시기 (0) | 2021.07.22 |
---|---|
XML에서 '&'를 이스케이프하여 HTML에서 엔티티로 렌더링하는 방법 (0) | 2021.07.21 |
">"(보다 큼 기호) 가 CSS에서 의미하는 것 (0) | 2021.07.21 |
HTML에 PDF를 포함하는 권장 방법 (0) | 2021.07.21 |
CSS를 사용하여 텍스트 길이를 n 줄로 제한 (0) | 2021.07.21 |