: 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평가 결과를 반환한다.
var x, y, z;
x = 1, y = 2, z = 3; // 3
: 소괄호 () 로 피연산자를 감싸는 그룹 연산자는 자신의 피연산자인 표현식을 가장 먼저 평가한다.
10 * 2 + 3; // 23
10 * (2 + 3); // 50
: 피연산자의 데이터 타입을 문자열로 반환한다.
typeof NaN // "number"
typeof true // "boolean"
typeof undefined // "undefined"
typeof null // "object" ("null" 타입을 반환하지 않는 일종의 버그)
typeof [] // "object"
typeof {} // "object"
typeof function(){} // "function"
: 좌항의 피연산자를 밑(base)으로, 우항의 피연산자를 지수(exponent)로 거듭 제곱하여 숫자 값을 반환한다. (ES7에서 도입됨)
2 ** 2; // 4
2 ** 2.5; // 5.65685424949238
2 ** 0; // 1
2 ** -2; // 0.25
Math.pow(2, 2); // 4
2 ** 3 ** 2; // 512
===
Math.pow(2, Math.pow(3,2)); // 512
(-5) ** 2; // 25
var num = 5;
num **= 2; // 25
2 * 5 ** 2; // 50
?. : 옵셔널 체이닝 연산자
?? : null 병합 연산자
delete : 프로퍼티 삭제
new : 생성자 함수를 호출할 때 사용하여 인스턴스를 생성
instanceof : 좌변의 객체가 우변의 생성자 함수와 연결된 인스턴스인지 판별
in : 프로퍼티 존재 확인
var x;
x = 1;
console.log(x); // 1
x++;
console.log(x); // 2
var o = { a: 1};
delete o.a;
console.log(o); // {}
: 여러 개의 연산자로 이뤄진 문이 실행될 때 연산자가 실행되는 순서, 우선순위가 높을수록 먼저 실행된다.
: 연산자의 어느 쪽(좌항 또는 우항)부터 평가를 수행할 것인지를 나타내는 순서
** 이미지 출처 : 모던 자바스크립트 Deep Dive