javascript 에서 null 과 undefined 의 구분 과 비교
정의 되 지 않 은 유형
Undefined 형식 은 하나의 값,즉 특수 undefined 입 니 다.var 성명 변 수 를 사용 하지만 초기 화 되 지 않 았 을 때 이 변수의 값 은 undefined 입 니 다.
예 를 들 면:
var message;
alert(message == undefined); //true
이 예 는 변수 message 만 설명 하 였 으 나 초기 화 되 지 않 았 습 니 다.이 변 수 는 undefined 글자 의 양 을 비교 한 결과 같은 것 으로 나 타 났 다.이 예 와 아래 의 예 는 등가 이다.
var message = undefined;
alert(message == undefined); //true
이 예 는 undefined 값 디 스 플레이 를 사용 하여 변수 message 를 초기 화 합 니 다.그러나 초기 화 되 지 않 은 값 은 기본적으로 undefined 값 을 얻 을 수 있 기 때문에 우 리 는 이렇게 할 필요 가 없다.일반적으로 변 수 를 undefined 값 으로 명시 적 으로 설정 할 필요 가 없 는 상황 입 니 다.글자 액면가 undefined 의 주요 목적 은 비교 에 사용 되 는 것 이 고 ECMA-262 3 판 이전 버 전에 서 는 이 값 을 규정 하지 않 았 습 니 다.3 판 에 이 값 을 도입 한 것 은 빈 대상 포인터 와 초기 화 되 지 않 은 변 수 를 정식으로 구분 하기 위해 서 입 니 다.
그러나 undefined 값 을 포함 하 는 변 수 는 정의 되 지 않 은 변수 와 다르다.아래 의 이 예 를 보 세 요.
var message; // undefined
//
// var age
alert(message); // "undefined"
alert(age); //
상기 코드 를 실행 하면 첫 번 째 경고 상 자 는 변수 메시지 의 값,즉"undefined"를 표시 합 니 다.두 번 째 경고 상자 인 alert()함수 에 전달 되 는 것 은 설명 되 지 않 은 변수 age 이기 때문에 오류 가 발생 할 수 있 습 니 다.설명 되 지 않 은 변수 에 대해 서 는 type of 연산 자 를 사용 하여 데이터 형식 을 검사 할 수 있 습 니 다.(설명 되 지 않 은 변수 에 대해 delete 를 호출 하 는 것 은 오 류 를 일 으 키 지 않 지만,이렇게 하 는 것 은 실제 적 인 의미 가 없 으 며,엄격 한 모드 에서 오 류 를 일 으 킬 수 있 습 니 다)그러나 곤 혹 스 러 운 것 은 초기 화 되 지 않 은 변수 에 대해 type of 연산 자 를 실행 하면 undefined 값 을 되 돌려 주 고,설명 되 지 않 은 변수 에 대해 type of 연산 자 를 실행 하 는 것 도 undefined 값 을 되 돌려 줍 니 다.다음 의 예 를 보십시오.
var message; // undefined
//
// var age
alert(typeof message); // "undefined"
alert(typeof age); // "undefined"
결과 에 따 르 면 초기 화 되 지 않 은 변수 와 설명 되 지 않 은 변수 에 대해 type:of 연산 자 를 실행 하면 undefined 값 을 되 돌려 줍 니 다.이 결 과 는 논리 적 합 리 성 이 있다.이 두 변 수 는 기술적 인 측면 에서 볼 때 본질 적 인 차이 가 있 지만 실제로 어떤 변수 에 대해 서도 진정한 조작 을 할 수 없 기 때문이다.알림:
초기 화 되 지 않 은 변 수 는 undefined 값 이 자동 으로 부여 되 더 라 도 변 수 를 명시 적 으로 초기 화 하 는 것 이 현명 한 선택 입 니 다.이 를 할 수 있다 면 type:of 연산 자가'undefined'값 을 되 돌려 줄 때 검 측 된 변 수 는 초기 화 되 지 않 은 것 이 아니 라 설명 되 지 않 았 음 을 알 수 있 습 니 다.
Null 형식
Null 형식 은 두 번 째 값 이 하나 밖 에 없 는 데이터 형식 입 니 다.이 특수 한 값 은 null 입 니 다.논리 적 으로 볼 때 null 값 은 빈 대상 지침 을 표시 합 니 다.이것 은 바로 type:of 연산 자 를 사용 하여 null 값 을 검사 할 때"object"로 돌아 가 는 이유 입 니 다.아래 의 예 와 같 습 니 다.
var car = null;
alert(typeof car); // "object"
정 의 된 변 수 를 나중에 저장 대상 에 사용 하려 면 이 변 수 를 다른 값 이 아 닌 null 로 초기 화 하 는 것 이 좋 습 니 다.이렇게 되면 null 값 을 직접 검사 하면 해당 변수 가 대상 의 인용 을 저장 하 였 는 지 알 수 있 습 니 다.아래 의 예 와 같 습 니 다.
if (car != null){
// car
}
,undefined null , ECMA-262 true:
alert(null == undefined); //true
여기 서 null 과 undefined 사이 에 있 는 똑 같은 연산 자(==)는 항상 true 로 돌아 갑 니 다.그러나 주의해 야 할 것 은 이 연산 자 는 비교 목적 에서 그 조작 수 를 바 꿉 니 다.비록 null 과 undefined 는 이러한 관계 가 있 지만 그 용 도 는 완전히 다 릅 니 다.앞에서 말 한 바 와 같이 어떤 상황 에서 도 변수의 값 을 undefined 로 명시 할 필요 가 없 지만 같은 규칙 은 null 에 적용 되 지 않 습 니 다.대상 을 저장 하려 는 변수 가 대상 을 제대로 저장 하지 않 았 다 면 이 변 수 를 null 값 으로 명확 하 게 저장 해 야 한 다 는 것 이다.이렇게 하면 null 이 빈 대상 지침 으로 하 는 관례 를 나 타 낼 수 있 을 뿐만 아니 라 null 과 undefined 를 더욱 구분 하 는 데 도 도움 이 된다.읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
언제가 아닌가프로그래밍 언어에서 null 참조가 수십억 달러의 실수라는 말을 이미 들었을 것입니다. Java의 유명하고 두려운 NullPointerException은 여러분이 알고 있거나 C의 분할 오류일 수 있습니다. 모든 상...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.