세모이
개발 계발
세모이
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 알고리즘 (1)
    • 자바스크립트 (29)
    • 리액트 (10)
    • HTML&CSS (2)
    • TIL (26)
    • 파이썬 (8)
    • Dev (1)
    • 데일리 (3)
      • 2023 (3)
      • 2025 (0)
    • 에러일기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • const let 키워드와 블록레벨 스코프
  • 옵셔널 체이닝
  • 개발자 도구 Network
  • 자바스크립트 생성자 함수에 의한 객체 생성
  • 자바스크립트 프로토타입
  • 자바스크립트 함수와 일급 객체
  • 리액트 key
  • 자바스크립트 빌트인 객체
  • 모던 자바스크립트 deep deive
  • 시멘틱 태그
  • 자바스크립트 프로퍼티 어트리뷰트
  • 자바스크립트
  • 자바스크립트 strict mode
  • &&연산자
  • 모던 자바스크립트 deep dive
  • 자바스크립트 전역 변수의 문제점
  • 자바스크립트 깊은 복사 얕은 복사
  • 모던 자바스크립트
  • 함수
  • html 신기한 태그

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
세모이

개발 계발

연산자
자바스크립트

연산자

2021. 11. 17. 16:27
반응형

연산자

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

이때 연산의 대상을 피연산자(값으로 평가될 수 있는 표현식)이라 함.

 

1. 산술 연산자

산술 연산자(arithmetic operator) - 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만듦.

산술 연산지 불가능한 경우 NaN을 반환.

 

1. 이항 산술 연산자

이항(binary) 산술 연산자 - 2개의 피연산자를 산술 연산하여 숫자 값을 만듦.

이항 산술 연산자는 피연산자의 값을 변경하는 부수 효과 없이 새로운 값을 만든다.

이항 산술 연산자의미부수 효과

+ 덧셈 X
- 뺼셈 X
* 곱셈 X
/ 나눗셈 X
% 나머지 X

 

2. 단항 산술 연산자

단항 산술 연산자의미부수 효과

++ 증가 O
-- 감소 O
+ 어떠한 효과도 없다. 음수를 양수로 반전하지도 않는다. X
- 양수를 음수로, 음수를 양수로 반전한 값을 반환한다. X
//++, -- 연산자는 피연산자의 값을 변경하는 암묵적 할당이 이뤄짐
x++; // x = x + 1;
x--; // x = x - 1;

피연산자 앞에 위치한 (++/--)는 피연산자의 값을 증가/감소 시킨 후, 다른 연산을 수행

피연산자 뒤에 위치한 (++/--)는다른 연산을 수행 후, 피연산자의 값을 증가/감소

// 숫자 타입이 아닌 피연산자에 + 단항 연산자를 사용하면 피 연산자를 숫자 타입으로 변환하여 반환
var x = '1';

// 문자열을 숫자로 타입 변환
connsole.log(+x); // 1

// 불리언 값을 숫자로 타입 변환
x=true;
console.log(+x); // 1

// 불리언 값을 숫자로 타입 변환
x=false;
console.log(+x); // 0

//문자열을 숫자로 타입 변환할 수 없음 -> NaN을 반환
x='Hello';
console.log(+x); // NaN
// -단한 연산자는 피연산자의 부호를 반전한 값을 반환.

console.log(-(-10)); // 10
console.log(-'10'); // -10
console.log(-true); //-1
console.log(-'Hello'); //NaN

 

3. 문자열 연결 연산자

연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작

//true는 1로 타입 변환
1 + true // 2

//false는 0으로 타입 변환
1 + false // 1

// null은 0으로 타입 변환
1 + null // 1

// undefined는 숫자로 타입 변환되지 않는다.
+undefined // NaN
1 + undefined // NaN

 

2. 할당 연산자

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

할당 연산자예동일 표현부수 효과

= x = 5 x = 5 O
+= x += 5 x = x + 5 O
-= x -= 5 x = x - 5 O
*= x *= 5 x = x * 5 O
/= x /= 5 x = x / 5 O
%= x %= 5 x = x % 5 O

할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가 된다.

var x;

// 할당문은 표현식인 문
console.log(x = 10); // 10

 

3. 비교 연산자

비교 연산자(comparison operator) - 좌항과 우항의 피연산자를 비교한 후 결과를 불리언 값으로 반환.

동등/일치 비교 연산자

동등 비교(loose equality) 연산자와 일치 비교(stric equality) 연산자는 좌항과 우항의 피연산자가 값은 값으로 평가되는지 비교해 불리언 값을 반환.


->동등 비교 연산자는 느슨한 비교 / 일치 비교 연산자는 엄격한 비교


비교 연산자의미사례설명부수효과

== 동등 비교 x == y x와 y의 값이 같음 X
=== 일치 비교 x === y x와 y의 값과 타입이 같음 X
!= 부동등 비교 x != y x와 y의 값이 다름 X
!== 불일치 비교 x !== y x와 y의 값과 타입이 다름 X

동등 비교(==) 연산자는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 값은 값인지 비교한다.

5 == 5; // true
5 == '5' // true

//예측하기 어려운 결과를 만들어 내기 때문에 일치 비교 연산자를 사용하면 좋다.
'0' == ''; // false
0 == ''; //true
0 == '0'; // true
false == 'false'; // false
false == '0'; // true
false == null; // false
false == undefined // false

일치 비교(===) 연산자는 좌항과 우항의 피연산자의 값과 타입이 같은 경우에 true를 반환

5 === '5' // false
5 === 5 // true

 

4. 삼항 조건 연산자

삼항 조건 연산자는 조건식의 평가 결과에 따라 반환할 값을 결정

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

var result : score >= 60 ? 'pass' : 'fail';
//score >= 60 값이 true 이면 pass
//score >= 60 값이 false 이면 fail

//if...else문을 사용해 유사하게 처리 가능
if(score >= 60) result = 'pass';
else result = 'fail';

삼항 연산자 표현식은 값처럼 사용 가능하지만 if...else 문은 값처럼 사용 할 수 없다.

var x = 10;

//if...else 문은 표현식이 아닌 문. -> 값처럼 사용 X
var result = if(x % 2) { result = '홀수';} else {result = '짝수'};

result = x % 2 ? '홀수' : '짝수';

삼항 조건 연산자 표현식은 값으로 평가할 수 있는 표현식인 문


 

5. 논리 연산자

논리 연산자(logical operator) - 우항과 좌항의 피연산자

논리 연산자의미부수 효과

|| 논리합(OR) X
&& 논리곱(AND) X
! 부정(NOT) X
// 논리합(||) 연산자
true || true; // true
true || false; // true
false || false; // true
false || false; // false

// 논리곱(&&) 연산자
true && true; // true
true && false; // false
false && true; // false
false && false; // false

// 논리 부정(!) 연산자
!true; // false
!false; // true

드 모르간의 법칙

!(x || y) === (!x && !y)
!(x && y) === (!x || !y)

https://ko.wikipedia.org/wiki/%EB%93%9C_%EB%AA%A8%EB%A5%B4%EA%B0%84%EC%9D%98_%EB%B2%95%EC%B9%99

 

6. 쉼표 연산자

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

var x, y, z;

x = 1, y = 2, z = 3; //3

 

7. typeof 연산자

typeof 연산자 - 피연산자의 데이터 타입을 문자열로 반환

"string", "number", "boolean", "undefined", "symbol", "object", "function" 중 하나를 반환


typeof 연산자가 반환하는 문자열은 7 개의 데이터 타입과 정확히 일치하지는 않는다

ex) typeof 연산자로 null 값을 연산하면 "object"를 반환

선언하지 않는 식별자를 typeof 연산자로 연산하면 ReferenceError가 아닌 undefined를 반환


 

8. 지수 연산자

지수 연산자 - 좌항의 피연산자를 밑으로, 우항의 피연산자를 지수로 거듭 제곱하여 숫자 값을 반환

2 ** 2; // 4
2 ** 0 ; //1

//음수를 거듭제곱의 밑으로 사용해하려면 괄호로 묶어야 함
(-5) ** 2 // 25

//지수 연산자는 할당 연산자와 함께 사용 가능
var num = 5;
num **= 2; // 25

// 지수 연산자는 이항 연산자 중에 우선순위가 가장 높음
2 * 5 ** 2; // 50

 

반응형

'자바스크립트' 카테고리의 다른 글

자바스크립트 타입변환, 단축 평가  (0) 2021.11.19
자바스크립트 제어문 살펴보기!  (0) 2021.11.18
데이터 타입!  (0) 2021.11.16
표현식과 문!  (0) 2021.11.15
자바스크립트의 변수!  (0) 2021.11.12
    '자바스크립트' 카테고리의 다른 글
    • 자바스크립트 타입변환, 단축 평가
    • 자바스크립트 제어문 살펴보기!
    • 데이터 타입!
    • 표현식과 문!
    세모이
    세모이
    개발 공부!

    티스토리툴바