[자바스크립트 완벽가이드] - 표현식과 연산자

Lee Jeong Min·2022년 5월 23일
0

자바스크립트

목록 보기
5/17
post-thumbnail

자바스크립트 완벽가이드 4장에 해당하는 부분이고, 읽으면서 자바스크립트에 대해 새롭게 알게된 부분만 정리한 내용입니다.

표현식이란
어떤 값으로 평가(evaluate)되는 구절

기본 표현식

JS는 프로그램에 있는 식별자를 조회할때, 그 값이 존재하지 않는경우, 조회하려는 시도가 들어오면 ReferenceError를 발생시킨다.

프로퍼티 접근 표현식

프로퍼티 접근 문법으로 아래와 같은 것들이 있다.

expression . identifiler
expression [ expression ]

어떠한 스타일의 프로퍼티 접근 표현식을 쓰든 .이나 [ 앞에 있는 표현식을 첫 번째로 평가한다.

만약 그 값이 null 또는 undefined이면 이 둘은 프로퍼티를 가질 수 없는 값이므로 TypeError를 발생시킨다.

호출 표현식

호출 표현식에서 맨 앞에 있는 표현식이 프로퍼티 접근 표현식(obj)이라면

obj.func()

이 호출은 메서드 호출이라고 하며, 메서드 호출에서 프로퍼티 접근 대상인 객체 또는 배열은 함수 바디가 실행되는 동안 this 키워드의 값이 된다.

즉 여기서 this는 메서드를 호출한 객체를 가리킨다는 의미

조건부 호출

단순히 () 대신 ?.()를 통해 함수를 호출할 수 있다. 이를 조건부 호출이라고 말한다.

function square(x, log) {
  if(log) {
    log(x);
  }
  return x * x;
}

⬇️

function square(x, log) {
  log?.(x);
  return x * x;
}

위 두 코드의 동작방식은 완전히 같지는 않다. 왜냐하면 ?.()는 왼쪽에 있는 것이 null이나 undefined인지만 체크하며, 실제로 함수인지까지 체크하지는 않기 때문이다.
→ 즉, 함수가 호출되어 예외가 발생할 수 있음(숫자 2개를 인수로 전달하여 호출한 경우)

profile
It is possible for ordinary people to choose to be extraordinary.

0개의 댓글