JavaScript 의 null 과 undefined 의 차이 점 소개

2058 단어
자 바스 크 립 트 에는 두 개의 대표 정보 가 존재 하지 않 는 특수 값 이 있 습 니 다: 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());

좋은 웹페이지 즐겨찾기