7장 - 연산자

Jaeseok0106·2022년 3월 17일

자바스크립트공부

목록 보기
3/14

연산자 -> 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산등을 수행하여 하나의 값을 만들며, 연산의 대상을 피연산자라고 함.

산술 연산자 -> 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만들며, 연산이 불가능 할 시 NaN을 반환.

7.1.1 이항 산술 연산자
-> 2개의 피연산자를 산술 연산하여 숫자 값을 만들며, 부수 효과가 없으며 언제나 새로운 값을 만듦. ( +, -, *, /, % )

7.1.2 단항 산술 연산자
-> 1개의 피연산자를 산술 연산하여 숫자 값을 생성. ( ++, --, +, -), 증가(++), 감소(--)의 연산자는 위치에 의미가 있음.

let x = 5, result;

result = x++;
console.log(result,x); //할당 후 증가 (5, 6)

result = ++x;
console.log(result,x); //증가 후 할당 (7, 7)

result = x--;
console.log(result,x); //할당 후 감소 (7,6)

result = --x;
console.log(result,x); //감소 후 할당 (5,5)

7.1.3 문자열 연결 연산자
-> + 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작.

console.log("1"+2); // 문자열이 연결됨 (1이 문자열로 바뀌어 12가 출력)
console.log(1+2); // 산술 연산자
console.log(1+true); // true가 1로 변환됨 
console.log(1+false); // false는 0으로 변환
console.log(1+null); // null도 역시 0으로 변환
console.log(+undefined); // undefined 는 숫자로 변환 X (NAN)
console.log(1 + undefined); // undefined 는 숫자로 변환 X (NAN)

7.2 할당 연산자
-> 우항에 있는 피연산자의 평과 결과를 좌항에 있는 변수에 할당

let x;

x = 10;
console.log(x);

x += 10;
console.log(x); // x = x+10

x -= 10;
console.log(x); // x = x - 10;

x *= 10;
console.log(x); // x = x * 10;

x /= 10;
console.log(x); // x = x / 10;

x %= 10;
console.log(x); // x = x % 10;

let str = "My name is ";
str += "LIM";
console.log(str); // My name is LIM 출력

할당문은 값으로 평가되는 표현식의 문으로서 할당한 값으로 평가됨. 이러한 특징을 이용해서 변수에 동일한 값을 연쇄적으로 할당할 수 있음.

7-3. 비교 연산자
 좌항과 우항의 피연산자를 비교한 다음 그 결과로 불리언 값(true, false)로 반환

7-3-1 동등/일치 비교 연산자

비교 연산자의미사례설명부수 효과
==동등 비교X == YX와 Y의 값이 같음X
===일치 비교X === YX와 Y의 값과 타입이 같음X
!=부동등 비교X != YX와 Y의 값이 다름X
!==불일치 비교X !== YX와 Y의 값과 타입이 다름X

동등 비교는 좌항과 우항의 피연산자를 비교할 때 암묵적 타입 변환을 통해 타입을 일치 시킨 후 같은 값인지 비교. 타입이 달라도 값이 같으면 true를 반환
5 == 5; -> true, 5 == ‘5’ -> true
일치 비교는 좌항과 우항의 피연산자가 타입도 같고, 값도 같은 경우에만 true를 반환
5 === 5; -> true, 5 === ‘5’; -> false
NaN === NaN; -> false (자신과 일치하지 않은 유일한 값)
숫자가 NaN인지 조사할 경우에는 Number.isNaN 함수를 사용.
Number.isNaN(NaN); -> true
Number.isNaN(1 + undefined); -> true
부동등 비교 연산자와 불일치 비교 연산자는 동등 비교, 일치 비교 연산자의 반대 개념

7-3-2. 대소 관계 비교 연산자

비교 연산자사례설명부수 효과
>X > YX가 Y보다 큼X
<X < YX가 Y보다 작음X
>=X >= YX가 Y보다 크거나 같음X
<=X <= YX가 Y보다 작거나 같음X

7-4 삼항 조건 연산자
 조건식의 평과 결과에 따라 반환할 값을 결정. 자바 스크립트의 유일한 삼항 연산자이다.

조건식 ? 조건식이 true일 경우 반환할 값 : false 일 경우 반환할 값

let x = 2;
let result = x % 2 ? "홀수" : "짝수";

물음표 앞의 첫 번째 피 연산자는 조건식이며, 불리언 타입으로 평가될 표현식이다.
조건식이 참이면 콜론 앞의 피 연산자가 평가되어 반환, 거짓일 경우 콜론 뒤의 피 연산자가 평가되어 반환됨.

삼항 조건 연산자 표현식은 값으로 평가할 수 있는 표현식인 문이다.
조건에 따라 수행해야 할 문이 하나가 아니라 여러 개라면 if else 문의 가독성이 더 좋다.

7.5 논리 연산자
-> 우항과 좌항의 피연산자를 논리 연산함.
|| -> 논리합(OR)
&& -> 논리곱(AND)
! -> 부정(NOT)

7.6 쉼표 연산자
-> 왼쪽 피연산자부터 차례대로 피연산자를 평가, 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평과 결과를 반환.

var x,y,z;

x = 1, y = 2, z = 3; // -> 3이 반환

7.7 그룹 연산자
-> 소괄호(‘( )’)로 피연산자를 감싸며, 자신의 피연산자인 표현식을 가장 먼저 평가한다. 그룹 연산자를 이용하여 연산자의 우선순위를 조절할 수 있다.

10 * 2 + 3; // 23
10 * (2+3); // 50

7.8 typeof 연산자
-> typeof 연산자는 7가지 문자열(string, number, boolean, undefined, symbol, object, function) 중 한 가지를 반환, null을 반환하는 경우는 없고 함수인 경우에는 function을 반환함. 그러나 반환하는 문자열은 7개의 데이터 타입과 ‘정확히’ 일치하지는 않음.
*데이터 타입이 null 인지 확인할 경우엔 일치 연산자를 사용해야 함.

7.9 지수 연산자

-> 좌항의 피연산자를 밑, 우항의 피연산자를 지수로 거듭제곱하여 값을 반환
2 ** 2 -> 4, 
2 ** 10 -> 1024

-> 메서드 Math.pow와 똑같음. 

0개의 댓글