[JavaScript] 모던 자바스크립트 Deep Dive로 배우는 JS #7 연산자(2)

ChilihC·2022년 4월 11일
0
post-thumbnail

TIL(Today I Learned) 🧑🏻‍💻


7. 연산자(2)


  • 연산자(operator)는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산(operation)등을 수행하여 하나의 값을 만든다.

  • 피연산자는 값으로 평가될 수 있는 표현식이어야 한다. 그리고 피연산자와 연산자의 조합으로 이뤄진 연산자 표현식도 값으로 평가될 수 있는 표현식이다.

7.5  논리 연산자

  • 논리 연산자(logical operator)는 우항과 좌항의 피연산자(부정 논리 연산자의 경우 우항의 피연산자)를 논리 연산한다.

  • 논리 연산자 종류: '||', '&&', '!'

  • 논리합 또는 논리곱 연산자 표현식의 평가 결과는 불리언 값이 아닐 수도 있다. 논리합 또는 논리곱 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다.


7.6  쉼표 연산자

  • 쉼표(,) 연산자는 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평가 결과를 반환한다.
var x, y, z;

x= 1, y=2, z = 3; // 3 

7.7  그룹 연산자

  • 소괄호('()')로 피연산자를 감싸는 그룹 연산자는 자신의 피연산자인 표현식을 가장 먼저 평가한다. 따라서 그룹 연산자를 사용하면 연산자의 우선순위를 조절할 수 있다. 그룹 연산자는 연산자 우선순위가 가장 높다.

7.8  typeof 연산자

  • typeof 연산자는 피연산자의 데이터 타입을 문자열로 반환한다.

  • typeof 연산자로 null 값을 계산해 보면 "null"이 아닌 "object"를 반환한다는 데 주의하자.

  • 값이 null 타입인지 확인할 때는 typeof 연산자를 사용하지 말고 일치 연산자(===)를 사용하자.

  • 선언하지 않은 식별자를 typeof 연산자로 연산해 보면 ReferenceError가 발생하지 않고 undefined를 반환한다.


7.9  지수 연산자

  • ES7에서 도입된 지수 연산자(**)는 좌항의 피연산자를 밑(base)으로. 우항의 피연산자를 지수(exponent)로 거듭 제곱하여 숫자 값을 반환한다.

  • 지수 연산자가 도입되기 이전에는 Math.pow 메서드를 사용했다. 지수 연산자는 Math.pow 메서드보다 가독성이 좋다.

  • 음수를 거듭제곱의 밑으로 사용해 계산하려면 괄호로 묶어야 한다.

  • 지수 연산자는 다른 산술 연산자와 마찬가지로 할당 연산자와 함께 사용할 수 있다.


7.10  그 외의 연산자

  • 옵셔널 체이닝 연산자(?.), null 병합 연산자(??), 프로퍼티 삭제(delete), 생성자 함수를 호출할 때 사용하여 인스턴스를 생성(new), 좌변의 객체가 우변의 생성자 함수와 연결된 인스턴스인지 판별(instanceof), 프로퍼티 존재 확인(in)

7.11  연산자의 부수 효과

  • 다른 코드에 영향을 주는 부수 효과가 있는 연산자는 할당 연산자(=), 증가/감소 연산자(++/--), delete 연산자다.

7.12  연산자 우선순위

  • 연산자는 종류가 많아서 연산자 우선순위를 모두 기억하기 어렵고 실수하기도 쉽다. 따라서 기억에 의존하기보다는 연산자 우선순위가 가장 높은 그룹 연산자를 사용하여 우선순위를 명시적으로 조절하는 것이 좋다.

7.13  연산자 결합 순서

  • 연산자 결합 순서란 연산자의 어느쪽(좌항 또는 우항)부터 평가를 수행할 것인지를 나타내는 순서를 말한다.

새로운 용어 정리



참고 문헌


* 모던 자바스크립트 Deep Dive ( 자바스크립트의 기본 개념과 동작 원리 ) / 이웅모 지음

profile
developer junior

0개의 댓글