[JS] 연산자

Im-possible·2025년 3월 31일

연산자

산술 연산자

// 덧셈
const sum = 1 + 2; // 3
// 뺄셈
const sum = 2 - 1; // 1
// 곱셈
const sum = 3 * 4; // 12
// 나눗셈
const sum = 4 / 2; // 2
// 나머지
const sum = 5 % 2; // 1
// 거듭제곱
const sum = 2 ** 3; //8
// 결합
const age = 20;
const result = "저는 " + age + "살 입니다.";
console.log(`저는 ${ age }살 입니다.`);

대입 연산자

// 기본 대입 연산자
const a = 3;
const b = 2;
// 덧셈 후 대입
a += b; // a = a + b
// 뺄셈 후 대입
a -+ b; // a = a - b
// 나눗셈 푸 대입
a /= b; // a = a / b
// 나머지 연산 후 대입
a %= b; // a = a % b
// 거듭제곱 후 대입
a **= b; // a = a ** b

증감 연산자

후위형

  • 현재의 값을 먼저 사용한 후 값을 증가 또는 감소
const count = 0;
count++; // 1 
count--; // 0

전위형

  • 값을 먼저 증가 또는 감소한 후 변경된 값을 사용
const count = 0;
++count; // 1 
--count; // 0

예시

var x = 5;
var y = x++ + ++x + x++ - x--; 
// y = 5 + 7 + 7 - 8 = 11
// x = 7

비교 연산자

  • 두 항을 비교하여 참이면 true, 거짓이면 false 반환
var a = 5;
var b = 10;
var c = '5';
var d = 5;

// > (크다)
console.log(a > b);

// < (작다)
console.log(a < b);

// >= (크거나 같다)
console.log(a >= d);

// <= (작거나 같다)
console.log(a <= d);

// 문자열 비교
console.log(a == c); // 동등, 5 = '5' = 5 == 5 = true
console.log(a === c); // 일치, 5 === '5' = number === string = false

console.log('ch05' > 'ch01'); //사전순으로 비교, true
console.log('ch15' > 'ch2'); //사전순으로 비교, 컴퓨터는 한글자씩 비교한다, false
// ch05, ch12, ch2, ch01 오름차순 정렬 순서
// ch01, ch05, ch12, ch2

일치 연산자 (===)

  • 두 데이터의 타입과 값을 모두 비교하여 값이 같아도 타입이 다르면 false
console.log(a === c); // 일치, 5 === '5' = number === string = false
null === null // true
undefined === undefined // true
null === undefined // false

동등 연산자 (==)

  • 두 데이터의 타입이 다르면 형 변환 후 일치 비교하여 타입이 달라도 값이 같으면 true
console.log(a == c); // 동등, 5 = '5' = 5 == 5 = true
null == undefined // true

논리 연산자

  • falsy: number 0, string '', boolean false, null, undefined
  • truthy: 100, ' ', 'hello', true, {}, []

|| : 논리합 (OR)

  • 피연산자 둘 중 하나라도 true일 경우 true
  • 둘 다 false일 경우 false
  • 앞의 값이 ture면 앞의 값을 반환
  • 앞의 값이 false이면 뒤의 값을 반환
console.log('hello' || 'world'); // 둘 다 true, hello
console.log(90 || 30); //둘 다 true, 90
console.log(null || 'world'); // world
console.log(undefined || 'hello'); // hello
console.log(0 || 100); // 100
console.log('' || 'hello'); // hello

var id = 'hongf';
var invalidId = id.length < 4 || id.length > 12;
var invalidId = !(id.length >= 4 && id.length <= 12);
console.log('id 입력 조건에 맞지 않음', invalidId); // false

&& : 논리곱 (AND)

  • 피연산자 둘 다 true일 경우 true
  • 둘 중 하나라도 false일 경우 false
  • 앞의 값이 true면 뒤의 값을 반환
  • 앞의 값이 false면 앞의 값을 반환
console.log(true && true); // ture
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false

! : 부정 (NOT)

  • true면 false, false면 true
var id = 'hongf';
var invalidId = !(id.length >= 4 && id.length <= 12);
console.log(invalidId); // false

삼항 연산자

  • 조건에 따라 값을 선택
  • {조건} ? {참일 때의 값} : {거짓일 때의 값};
let num = 9;
let result = num % 2 === 0 ? '짝수' : '홀수';
console.log(`${num}은 ${result}입니다.`); // 9은 홀수입니다.

연산자 우선순위

  1. 괄호: ()
  2. 단항 연산자: +, -, ++(전위형), --(전위형), !, typeof, delete
  3. 산술 연산자: *, /, %, +, -
  4. 비교 연산자: >, <, >=, <=, ==, ===, !=, !==
  5. 논리 연산자: &&, ||
  6. 삼항 연산자
  7. 증감 연산자(후위형): ++, --
  • 산술, 비교, 논리, 대입 연산자의 순서는 꼭 기억하라.
  • 우선 순위가 헷갈리면 괄호 사용을 권장.

0개의 댓글