JavaScript 의 null 과 undefined 의 차이 점 소개
1. null 은 정 보 를 저장 하 는 용기 (예 를 들 어 이전에 부 여 된 값 의 변수) 를 대표 하지만 이 용기 의 내용 은 비어 있 습 니 다.2. undefined 는 정 보 를 저장 하 는 용기 가 존재 하지 않 습 니 다.
JavaScript 의 null 은 다른 대부분의 프로 그래 밍 언어 중의 null 과 별 차이 가 없 으 며, 기본적으로 정보 값 이 비어 있 음 을 나타 내 는 데 사 용 됩 니 다.자 바스 크 립 트 에서 다음 과 같은 상황 에서 표현 식 반환 결 과 는 undefined 입 니 다.
1. 값 이 부여 되 지 않 은 변수.2. 대상 이 존재 하지 않 는 속성 값 에 접근 합 니 다.3. 배열 에 존재 하지 않 는 구성원 을 방문 합 니 다.4. return 문장 이 없 는 함 수 를 호출 합 니 다.5. return 문 구 를 빈 함수 로 호출 합 니 다.
사실 인 피 니 티, NaN 과 마찬가지 로 undefined 는 JavaScript 에서 전역 변수 로 ECMAScript 3 에서 다른 값 을 부여 할 수 있 습 니 다.ECMAScript 5 는 이 오 류 를 바로 잡 고 undefined 변 수 를 읽 기 전용 으로 설정 합 니 다.
null 과 undefined 간 의 비교 에 대해 서 는 = = = 전체 연산 자 를 사용 할 수 있 습 니 다.일반적인 = = 연산 자 를 사용 하면 null 과 undefined 는 등가 입 니 다.
console.log(null == undefined);//true
console.log(null === undefined);//false
프로그램 을 작성 하 는 과정 에서 특정한 변수 에 빈 값 을 부여 하려 면 undefined 가 아 닌 null 을 사용 합 니 다.그 이 유 는:
1. undefined 는 일반적으로 시스템 차원 에 속 하고 잘못된 보고 차원 의 정보 부족 이 라 고 생각한다.2. null 은 일반적으로 프로 그래 밍 차원 에 속 하고 논리 적 조작 차원 의 정보 값 이 비어 있다 고 생각 합 니 다.
프로그램 에서 형식 변환 과 관련 이 있다 면 number 형식 으로 전환 할 때 null 과 undefined 의 결 과 는 다 릅 니 다.
1. undefined 가 number 로 전 환 된 결 과 는 NaN 이다.2. null 을 number 로 변환 한 결 과 는 0 입 니 다.
특히 빈 문자열 과 빈 배열 을 number 로 변환 한 결과 도 0 이다.
자 바스 크 립 트 에서 왜 '없다' 는 두 개의 값 을 설계 해 야 하 는 지 에 대해 서 는 완 일 봉 의 블 로그 글 을 참조 할 수 있다.
실험 하 다.
다음 실험 코드 에서 표현 식 결 과 는 모두 undefined 입 니 다.
var a;
console.log(a);
function Sample(x){
this.x = x;
}
var s = new Sample();
console.log(s.x)
console.log(s.notExistVariable);
var n = [2,3,4];
console.log(n[8]);
function test(){
//no return value for this function
}
console.log(test());
function test2(){
return;
}
console.log(test2());
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.