프로그래밍 언어/HTML,CSS,JS

JavaScript에서 null vs undefined 및 == 과(와) === 의 차이

Rateye 2021. 7. 21. 10:56
728x90
반응형

 

질문 : null vs. undefined 및 == 및 ===의 차이점에 대한 JavaScript 검사

  1. null 이거나 undefined 경우 어떻게 확인 nullundefined 의 차이점은 무엇입니까?
  2. ===== 의 차이점은 무엇입니까? (Google에서 "==="를 검색하기 어렵습니다)

 

 

답변

null 이거나 undefined 경우 어떻게 확인합니까?

 

변수가 null

if (a === null)
// or
if (a == null) // but see note below

aundefined 경우 후자도 참이됩니다.

undefined :

if (typeof a === "undefined")
// or
if (a === undefined)
// or
if (a == undefined) // but see note below

...하지만 마지막 것은 모호하다는 점에 유의하십시오. anull 경우에도 마찬가지입니다.

이제 위의 내용에도 불구하고 이를 확인하는 일반적인 방법은 거짓이라는 사실을 사용하는 것입니다 .

if (!a) {
// `a` is falsey, which includes `undefined` and `null`
// (and `""`, and `0`, and `NaN`, and [of course] `false`)
}

이것은 사양의 ToBoolean 에 의해 정의됩니다.

 

nullundefined 의 차이점은 무엇입니까?

 

둘 다 일반적으로 무언가가 없음을 나타내는 데 사용되는 값입니다. 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
728x90
반응형