[JavaScript] 연산자

희철·2023년 12월 21일
1
post-thumbnail
post-custom-banner

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

산술 연산자

  • 이항 산술 연산자
    2개의 피연산자를 산술 연산해 숫자 값을 만든다.
	9 + 4 // -> 13     (덧셈)
	9 - 4 // -> 5      (뺄셈)
	9 * 4 // -> 36     (곱셈)
	9 / 4 // -> 2.25   (나눗셈)
	9 % 4 // -> 1      (나머지)

단항 산술 연산자

1개의 피연산자를 산술 연산해 숫자 값을 만든다.

  • 증가 감소 연산자 ( ++ / -- )
	// 증가, 감소 연산자
	let num = 94;
	num++; // num = num + 1;
	num--; // num = num - 1;
--------------------------------------------------------------
	// 연산자 위치에 따른 차이점
	// num++, num-- 피연산자 뒤에 위치한 경우 먼저 다른 연산을 수행한 후
	// 피연산자의 값을 증가/감소 시킨다.

	let num = 94;
	alert(num++); // 94, alert(num) 먼저 수행 후 num = num + 1 수행
	alert(num); // 95, 증가된 num 값 95 출력

	// ++num, --num 피연산자 앞에 위치한 경우 먼저 피연산자의 값을 증가/감소시킨 후
	// 다른 연산을 수행한다.
	
	let num = 94;
	alert(--num); // 93, num = num - 1 수행 후 감소된 num 값 93 출력
	alert(num); // 93, 위와 같은 값 출력
  • + , - 연산자
	// + 연산자 (산술 연산자)
	// 숫자 타입이 아닌 피연산자에 사용하면 숫자 타입으로 변환하여 변환한다.
	// 피연산자는 변경점 없고 숫자 타입으로 변환한 값을 생성해서 반환한다.
	let str = '94';
	let test = 0;
	test = +str; 
	// 숫자 타입으로 변환한 값을 생성해서 반환하기 때문에
	// str은 '94' 그대로고 test에는 변환된 숫자타입 값 94가 출력 된다.
	console.log(str); // '94'
	console.log(test); // 94

	let t = true;
	let f = false;
	console.log(+a); // 1
	console.log(+f); // 0
	
	// 문자열은 숫자 타입으로 변환할 수 없음 NaN을 반환한다.
	// 숫자로 구성된 문자열과 다름
	str = 'ninetyFour';
	console.log(+str); // NaN

	// 암묵전 타입 변환/ 타입 강제 변환
	94 + true; // 95,  true는 1로 변환된다.
	94 + false; // 94,  false는 0으로 변환된다.
	94 + null; // 94,  null은 0으로 변환된다.
	+undefined; // NaN,  undefined는 숫자 타입으로 변환되지 않는다.
	1 + undefined; // NaN

	// + 연산자 (문자열 연결 연산자)
	// 피연산자 중 하나 이상이 문자열인 겨우 문자열 연결 연산자로 동작한다.
	'9' + 4; // '94'
	9 + '4'; // '94'

	// - 연산자
	// + 연산자와 같이 숫자 타입이 아닌 피연산자를 숫자타입으로 변환하여 변환한다.
	// 차이점은 피연산자의 부호를 반전한 값을 반환한다.
	-'94'; // -94
	-true; // -1
	-'ninetyFour'; // NaN

할당 연산자

  • 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당한다.
	x = 94
	x += 94 // x = x + 94
	x -= 94 // x = x - 94
	x *= 94 // x = x * 94
	x /= 94 // x = x / 94
	x %= 94 // x = x % 94

	// 할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가된다.
	
	let a, b, c;
	// 연쇄 할당. 오른쪽에서 왼쪽으로 진행.
	// 1. c = 0 : 0으로 평가된다.
	// 2. b = 0 : 0으로 평가된다.
	// 3. a = 0 : 0으로 평가된다.
	a = b = c = 0;
	console.log(a,b,c); // 0 0 0

비교 연산자

비교 연산자는 좌항과 우항의 피연산자를 비교한 다음 결과를 불리언 값으로 반환한다.

  • 동등 / 일치 비교 연산자
	==  동등  비교 |  x == y   | x와 y의 값이 같음
    === 일치  비교 |  x === y  | x와 y의 값, 타입이 같음
    !=  부동등 비교 |  x != y   | x와 y의 값이 다름
    !== 불일치 비교 |  x !== y  | x와 y의 값, 타입이 다름

참고: 모던 자바스크립트 Deep Dive

post-custom-banner

0개의 댓글