자바스크립트 핵심가이드 6/E

2017년 4월 29일 ~

  • 1장 자바스크립트소개(~17/4/19)
  • 4장 표현식과 연산자(~17/5/1)
  • 6장 객체 - p153(~17/5/4)
  • 7장 배열 - p203(~17/5/11)

존재하지 않는 객체의 프로퍼티에 접근하려고 하면 에러가 발생한다. nullundefined값은 어떠한 프로퍼티도 갖지 않기 때문에 이들 값에 프로퍼티로 접근을 시도하면 에러가 발생한다.

// book객체에 subtitle이라는 프로퍼티가 없는경우(undefined)
var len = book.subtitle.length;

TypeError를 발생한다.

bookbook.subtitle이 객체이거나 적어도 객체와 같이 동작한다는것을 확인하기 전까지는 book.subtitle.length와 같은 표현식을 사용하면 안된다. 아래은 예외를 막기위한 방법이다.

// 1. 구체적이고 확실한 방법
var len;
if(book){
    if(book.subtitle){
        len = book.subtitle.length;
    }
}
// 2. 간단하고 관용적인 방법. subtitle.length 값 또는 undefined가 반환된다.
var len = book && book.subtitle && book.subtitle.length;

좌변의 값이 "truthy" 면 && 연산자는 항상 우변의 값을 평가하고 반환한다.

var o = { a : "1", b : "2"}

Object.getOwnPropertyNames(o); //(2)['a','b']

results matching ""

    No results matching ""