자바 스크립트에서 undefined를 확인하는 방법

값을 할당하지 않고 변수를 선언하면 초기 값은 undefined입니다.

JavaScript에서 값이 undefined인지 어떻게 확인합니까?

간단한 대답

최신 브라우저에서는 변수를 안전하게 비교할 수 있습니다. undefined에 직접 연결 :

어떤 사람들은 undefined 이전 브라우저에서는 다음과 같이 값을 다시 할당 할 수 있었기 때문입니다.

재 할당 후 는 더 이상 변수에 값이 할당되었는지 여부를 올바르게 감지하지 못합니다.

그러나이 동작은 2009 년 ECMAScript 5로 수정되었습니다.

최신 브라우저에서는 더 이상 전역 undefined 값을 다시 할당 할 수 없습니다.

IE8 이상을 지원해야하는 경우 어떻게해야합니까?

일반적으로, 유엔과 직접 비교 정의는 여전히 안전합니다. 애플리케이션이 undefined의 값을 재 할당 할 실질적인 이유가 없습니다.

Thomas Eding은 설득력있는 비유로이를 입증합니다.

그래도 걱정된다면 전역 undefined를 덮어 썼더라도 값이 정의되지 않았는지 확인하는 두 가지 방법이 있습니다.

다음을 사용할 수 있습니다. void 연산자를 사용하여 undefined의 값을 가져옵니다. 이는 전역 window.undefined 값을 덮어 쓴 경우에도 작동합니다.

이 예에서 0은 특별한 의미가 없습니다. 1 또는

. void(anything)는 항상 undefined로 평가됩니다.

또는 typeof 연산자를 사용하여 값이 있는지 안전하게 확인할 수 있습니다. 할당되었습니다. 전역 undefined 값과 비교하는 대신 값 유형이 “undefined”인지 확인합니다.

이는 이전 옵션과 약간 다릅니다. name가 선언되지 않았더라도 typeof는 여전히 정의되지 않은 것으로 표시됩니다. 선언되지 않은 변수를 undefined 또는 void(0)와 비교하면 대신 ReferenceError가 발생합니다.

하지만 그렇지 않습니다. void (0) 직접 사용

코드에서 그대로 void(0) 또는 typeof x === "undefined"를 사용하지 마십시오. 이러한 표현식은 설명이 필요 없으며 다음과 같이 isUndefined 함수로 래핑되어야합니다.

많은 유틸리티 라이브러리에는 이미이 기능이 내장되어 있습니다. 예를 들어 _.isUndefined 함수.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다