All'alba vincerò

At dawn, I will win!

Javascript

[JS] 연산자(Operations)

나디아 Nadia 2024. 6. 1. 20:31

기본 연산자

 

피연산자

: 연산을 수행하는 대상
 

 

단항 연산자

: 피연산자가 1개

let x = 1;

x = -x;
alert( x ); // -1

 

 

이행 연산자

: 피연산자가 2개

let x = 1, y = 3;
alert( y - x ); // 2

 

 


수학 연산자

덧셈: +
뺄셈: -
곱셈: *
나눗셈: /

나머지: %

  • a % b = a를 b로 나눈 나머지를 정수로 반환
alert( 5 % 2 ); // 1 (5 % 2 = ...1)
alert( 8 % 3 ); // 2 (8 % 3 = ...2)

 
거듭제곱: **

  • a ** b = a를 b번 곱한 값이 반환
alert( 2 ** 2 ); // 4 (2 * 2)
alert( 2 ** 3 ); // 8 (2 * 2 * 2)

 

 


 

이항 연산자 + : 문자열 병합

"문자열" + "문자열" = 병합
 
* 이항 연산자 +를 사용할 땐 피연산자 중 하나가 문자열이면 다른 하나도 문자열로 변환된다!
(문자열" + 숫자 = 숫자 ➡ "문자열"로 변경됨)

let s = "my" + "string"; 
alert(s); // mystring

alert( "1" + 2 ); // "12" => "1" + "2"
alert( 2 + "1"); // "21" => "2" + "1"
alert( 2 + 2 + "1" ); // "41" => "4" + "1"
// 연산은 왼쪽 -> 오른쪽으로 진행되기 때문에 (2 + 2)가 먼저 시행

 

 

다른 산술 연산자 = 피연산자가 숫자형이 아닐 경우 숫자형으로 바꿈
(이항 연산자 +와는 달리)

alert( 6 - "2" ); // 4 (문자열 "2"를 숫자로 바꾼 후 연산 진행)
alert( "6" / "2" ); // 3 (둘 다 숫자형으로 바꾼 후 연산 진행)

 

 

 

 

단항 연산자 + : 숫자형으로 변환

숫자형으로 변환 (= Numer(값))

// 단항 덧셈 연산자
let apples = "2";
let oranges = "3";

alert( +apples + +oranges ); // 5
alert( Number(apples) + Number(oranges) ); // 5 (위와 같은 표현)

 

  • 숫자형에 붙이면 아무런 영향 X
let x = 1;
alert( +x ); // 1 (영향 X)

alert( +true ); // 1 (*'숫자형으로의 변환 규칙'(전 글) 참고)
alert( + "" ); // 0

 

 


할당 연산자 (=)

: 변수에 값을 대입

 

 

 

일치 연산자 (===)

형 변환 없이 값을 (그대로) 비교할 수 있다.

  • 동등 연산자 ==는 0과 false를 구별하지 못한다.
    (형이 다른 피연산자를 비교할 때 숫자형으로 바꾸기 때문에)
  • ===는 ==보다 더 엄격하게 비교한다.
alert( '' == false ); // true

alert( 0 === flase); // false (피연산자의 형이 다르기 때문에 false)

 

 

 

복합 할당 연산자 (+=, -=, *=, /= 등)

: 연산과 대입을 한 번에 표현

 

 

 

증감 연산자 (++, --)

: ++는 변수를 1 증가, --는 변수를 1 감소

  • 증가/감소(++/—) 연산자는 위치에 의미있다.
    앞 → 피연사자의 값을 증가/감소 시킨 후 할당
    뒤 → 할당 후 피연사자의 값을 증가/감소


 전위형(++변수)
: 증가된(++) 후의 값 반환

let counter = 0;
alert( ++counter ); // 1



후위형(변수++)
: 증가되기 이전의 값 반환

  • 값 반환 후 증가(++)
let counter = 0;
alert( counter++ ); // 0

 

let x = 5, result;

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

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

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

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

 

 

 

 

쉼표 연산자 ,

: 여러 표현식을 코드 한 줄에 표

  • 표현식 각각 모두 평가되지만, 마지막 표현식의 결과만 반환
  • 코드 가독성에 도움 X, 진짜 필요한 경우에만 사용
let a = (1 + 2, 3 + 4);

alert(a); // 7 (마지막 표현식 3 + 4의 결과만 출력)
// 앞 표현식의 결과는 버려짐



비교 연산자

문자열 비교

  • 뒷쪽의 알파벳 > 앞쪽의 알파벳

 

다른 형의 값끼리 비교

  • 비교하려는 값의 자료형이 다르면 숫자형으로 변환
  • boolean값의 경우 true는 1, false는 0으로 변환됨
alert( "2" > 1 ); // true (문자열 "2"가 숫자 2로 변환 후 비교
alert( true == 1 ); // true (true는 1)

let a = 0;
alert( Boolean(a) ); // false (0은 false)

let b = "0"; // true
alert( Boolean(b) ); // true

 


 

null과 undefined 비교하기

1. 일치 연산자 ===로 비교

alert( null === undefined ); // false

 

2. 동등 연산자 ==로 비교

- 동등 연산자(==)는 null과 undefined를 true로 취급한다. (예외 규칙)

alert( null == undefined ); // true

 

3. 산술 연산자 / 기타 비교 연산자 <, >, <=, >=로 비교

- null -> 0, undefined -> NaN으로 변한다.

 

 

 

null vs 0

(1) 기타 비교 연산자 (<, >, <=, >=)

- null, undefined = 형 변환 O

alert( null > 0 ); // false
alert( null == 0 ); // false

 

 

(2) 동등 연산자 (==)

- null과 undefiend = 형 변환 X

- undefined == null ----> true

- null / undefined == 다른 값 ----> false

alert( null >= 0 ); // true

 

 

 

* 비교가 불가능한 undefined

: undefined를 다른 값과 비교가 불가능

(1) 기타 비교 연산자: indefined가 NaN으로 변환, NaN이 있으면 비교 연산자는 항상 false

(2) 동등 연산자: undefined는 null, undefined과는 true, 그 이외의 값과는 false

 

 

 


 

 

기본 연산자와 수학

 

ko.javascript.info

 

 

비교 연산자

 

ko.javascript.info