전단 면접 (1) javascript 의 null, undefined, undeclared

2826 단어
첫머리 에 쓰다
이 글 은 면접 시리즈 의 첫 번 째 편 입 니 다. 이 시 리 즈 를 쓰 는 것 은 일자 리 를 찾기 위 한 것 이 아니 라 JS 에서 중요 하고 헷 갈 리 기 쉬 운 지식 점 을 연구 하고 자 합 니 다. 문 제 는 github 의 오픈 소스 프로젝트 에서 나 왔 습 니 다.
전단 업무 면접 문제
undefined 와 undeclared 의 차이 점:
  • undefined 는 JS 형식 으로 이 유형 은 하나의 값, 즉 특수 한 undefined 값 만 있 습 니 다.var 성명 변 수 를 사용 하고 있 지만 대상 을 초기 화하 지 않 았 습 니 다. 이 변수의 값 은 undefined 입 니 다.
  • undeclared 는 문법 오류 로 볼 수 있다.그래서 나 는 이 두 가 지 를 부 를 때 구분 할 수 있다 고 생각한다.
  • 값 은 undefined 변수
    var a=undefined; 
    var b;
    
  • undeclared 의 변수 (설명 되 지 않 은 변수)
    a;
    b=10;
    

  • 예:
    "variable age is undeclared" 는 두 가지 상황 으로 이해 할 수 있 습 니 다.
  • 첫 번 째: 성명 변수 도 없고 할당 도 없다. javascript alert(age); //Uncaught ReferenceError: age is not defined
  • 두 번 째: 성명 변 수 는 없 지만 값 을 부 여 했 습 니 다. 암시 적 으로 전역 변수 로 전환 합 니 다. ` ` javascript function test () {age = 10; var your Age = 20;} test ();
          alert("age:"+age);  //10
          alert("your age:"+yourAge);  //Uncaught ReferenceError: yourAge is not defined
      ```
    
  • 두 번 째 상황 test 방법 에 있 는 age 는 성명 (undeclared) 이 없 기 때문에 JS 엔진 에 의 해 전역 변수 로 사용 되 기 때문에 test 방법 외 에 도 얻 을 수 있 습 니 다. yorAge 는 test 방법 에서 정확 한 성명 과 할당 을 받 았 습 니 다. 그 역할 영역 은 test 방법 내 에서 만 사용 되 기 때문에 방법 외 호출 시 오류 가 발생 할 수 있 습 니 다. test () 에 있 을 수 없 기 때 문 입 니 다.방법 외 에 yourAge 변 수 를 찾 으 면 첫 번 째 undeclare 와 비슷 합 니 다.


  • undefined 와 null
  • null 형식 은 undefined 와 마찬가지 로 하나의 값 만 있 는 데이터 형식 입 니 다. 이 특수 한 값 은 null 입 니 다.
  • alert(undefined==null)//true

  • 본질 적 차이:
  • null 은 하나의 값 이 정의 되 었 음 을 나타 내 고 '빈 값' 으로 정의 합 니 다
  • undefined 는 정의 가 존재 하지 않 음 을 나타 낸다
  • 용법 차이:
  • null 의 용법:
  • 대상 을 저장 하 는 변 수 는 대상 을 진정 으로 저장 하지 않 았 으 므 로 이 변 수 를 null 값 으로 명확 하 게 저장 해 야 합 니 다.
  • 대상 원형 체인 의 종점
  • 함수 의 매개 변수 로 서 이 함수 의 매개 변 수 는 대상 이 아니 라 는 것 을 나타 낸다
  • undefined 의 용법:
  • 변 수 는 성명 되 었 으 나 할당 되 지 않 았 습 니 다. var a;
  • 함 수 를 호출 할 때 제공 해 야 할 매개 변 수 는 제공 되 지 않 았 습 니 다. 이 매개 변 수 는 undefined 와 같 습 니 다.
  • function f(x){
        alert(x);
    }
    f(); //x undefined
    
  • 대상 은 값 을 부여 하 는 속성 이 없습니다. 이 속성의 값 은 undefined 입 니 다.
  • var person=new object();
    person.age //age undefined
    
  • 함수 가 반환 값 이 없 을 때 기본 값 으로 undefined
  • 를 되 돌려 줍 니 다.
    var x=f();
    x //undefined
    

    null, undefined, undeclared 를 어떻게 검사 합 니까?
        ```
            var a=null;
            var b;
            
            alert(typeof a);    //object
            alert(typeof b);    //undefined
            alert(typeof c);    //undefined
        ```
    

    레 퍼 런 스
  • Javascript 고급 프로 그래 밍
  • undefined 와 null 의 차이 - 완 일 봉 의 네트워크 로그
  • MDN
  • 좋은 웹페이지 즐겨찾기