Javascript 에서 값 이 undefined 인지 아 닌 지 를 판단 하 는 방법 에 대한 상세 한 설명
변 수 를 설명 하고 할당 하지 않 은 상태 에서 초기 값 은 undefined 라 는 것 을 잘 알 고 있 을 것 입 니 다.그러나 자바 script 에서 하나의 값 이 undefined 인지 어떻게 검사 합 니까?
간단하게 말 하면 현대 브 라 우 저 에서 안전 한 비교 변수 가 undefined 인지 아 닌 지
if (name === undefined) {...}
일부 사람들 은 undefined 변 수 를 직접 사용 하여 비교 하 는 것 을 반대 합 니 다. 오래된 브 라 우 저 에서 값 을 다시 할당 할 수 있 기 때 문 입 니 다. 예 를 들 어 다음 과 같 습 니 다.
undefined = "test"
다시 할당 되면 undefined 명령 을 사용 하면 변수 가 할당 되 었 는 지 정확하게 검사 할 수 없습니다.
그러나 이 행 위 는 2009 년 ECMAScript 5 에서 복구 됐다.
15.1.1.3 undefined
The value of undefined is undefined (see 8.1). This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
현대 브 라 우 저 에 서 는 undefined 의 값 을 다시 쓸 수 없습니다.
IE8 이나 더 오래된 브 라 우 저 를 지원 해 야 합 니 다. 어떻게 합 니까?
보통 undefined 명령 은 안전 합 니 다.응용 프로그램 에서 undefined 의 값 을 수정 해 야 할 이유 가 없습니다.
Thomas 의 대답 은 설득력 있 는 추 리 를 사용 해 이 점 을 논증 했다.
I don't hear people telling me that I shouldn't use setTimeout because someone can
, setTimeout, :
window.setTimeout = function () {
alert("Got you now!");
};
다음 줄 에서 "다시 할당 할 수 있 습 니 다"
raw === undefined
false 로 돌아 갑 니 다.만약 당신 이 여전히 신경 을 쓰 고 있다 면, 하나의 값 이 undefined 인지 확인 할 수 있 는 두 가지 방법 이 있 습 니 다. 비록 전체
window.undefined
가 재 작성 되 었 더 라 도.
if (name === void(0)) {...}
이 예 에서 0 은 아무런 실제 적 인 의미 가 없 으 니 사용 하고 싶 어도 상관없다.
1 or function(){}
모두 undefiend 로 계 산 됩 니 다.다른 선택 은 type: of 연산 자 를 사용 하여 할당 여 부 를 안전하게 검사 할 수 있 습 니 다.전체 undefined 대신 값 의 형식 이 'undefined' 인지 확인 할 수 있 습 니 다.
if (typeof name === "undefined") {...}
두 번 째 선택 은 이전 방안 과 약간 차이 가 있 습 니 다. name 이 밝 혀 지지 않 았 음 에 도 불구 하고 type of 는 undefined 로 돌아 갑 니 다.name 과
void(anything)
를 직접 사용 하면 undefinedor void(0)
이상 한 오 류 를 얻 을 수 있 습 니 다.하지만 VOID (0) 명령 을 사용 하지 마 세 요.
코드 에 서 는 void (0) 나
ReferenceError
를 사용 하지 않 습 니 다. typeof x === "undefined"
방법 으로 그들 을 포장 할 수 있 습 니 다. 그러면 사용 할 때 더 이상 특별히 설명 하지 않 아 도 됩 니 다.
function isUndefined(value){
// undefined,
var undefined = void(0);
return value === undefined;
}
일부 공구 라 이브 러 리 는 이미 이 방법 을 배치 했다. 예 를 들 어
isUndefined function
, _.isUndefined
중의 underscore
방법 이다.총결산
이상 이 이 글 의 전체 내용 입 니 다. 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 었 으 면 좋 겠 습 니 다. 궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.