연산자[Learning JavaScript]

연산자

let x; //선언문
x = 3 * 5; // 1. 3*5라는 곱셉 표현식과 곱샘값을 변수 x에 할당하는 표현식

let x, y;
y = x = 3 * 5 
y = x = 15 //곱셈 표현식을 평가
y = 15 //첫번째 할당을 평가. x는 15, y는 아직 undefined
15; //두번째 할당을 평가. y는 15, 전체 문의 결과는 15지만 할당하지도 않고 사용하지 않아서 버려진다.
  • 표현식은 대부분 연산자 표현식이다.
  • 연산자 표현식이 아닌 표현식에는 식별자 표현식과 리터럴 표현식이 있다.
  • 연산자를 표현식의 명사에 대한 동사라고 생각해도 된다.
  • 표현식이 값이 되는 것이라면 연산자는 값을 만드는 행동.
let x = 2;
const r1 = x++ + x++;
//	((x++) + (x++))
//	(2 + (x++)) 왼쪽에서 오른쪽으로 진행한다. x는 3
//	(2 + 3) x는 4
//	5

cons r2 = ++x + ++x;
//	((++x) + (++x))
//	(5 + (++x)) 왼쪽에서 오른쪽으로 진행한다. x는 5
//	(5 + 6) x는 6
//	11 x는 6

const r3 = x++ + ++x;
//	((x++) + (++x))
//	(6 + (++x))	왼쪽에서 오른쪽으로 진행한다. x는 7
//	(6 + 8)	x는 8
//	14 x는 8

연산자 우선순위

  • 같은 연산사들은 오른쪽에서 왼쪽으로 또는 왼쪽에서 오른쪽으로 평가한다.
let x=3, y;
x += 6 = 6*5/2;

//	곱셈과 나눗셈, 우선순위 14, 왼쪽에서 오른쪽으로
//	x += y = (6*5)/2
//	x += y = 30/2
//	x += y = 15
//	할당, 우선순위 3, 오른쪽에서 왼쪽
//	x += (y = 15)
//	x += 15	y는 15
//	18	x는 18