JavaScript - 3. 연산자

2021. 11. 24. 13:04Study/JavaScript

연산자

연산자란 프로그래밍에서 특정의 계산을 하기 위해 만들어진 기호들입니다. 연산자에는 산술, 관계/비교, 논리, 대입, 복합, 증감연산자 등이 있습니다.

 

계산의 우선순위를 갖고있으며 ( ) 연산자로 우선순위를 높일 수 있다.
*우선순위 순서 : 전위형증감연산자(++a) > 산술 > 관계 > 논리 > 대입 > 복합 > 후위형증감연산자 (a++)
*단항연산자 > 이항연산자

 



1) 산술연산자

  • 이항연산자이며, 계산을 하기위해 사용된다.
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지 = mod (modulus) *홀수, 짝수, 배수를 판별할 때 사용한다.
2로 나눠서 나눈 몫이 1이면 홀수, 0이면 짝수
+ 숫자의 덧셈, 문자열의 결합 *숫자와 문자의 결합 = 문자
*숫자+숫자 일 때만 = 숫자
ex)
console.log('당신의 나이는' + 20+30 + '세입니다');
// 당신의 나이는 2030세 입니다.

* 자동형변환 ( + 제외 )

문자열 결합의 기능이 없는 - * / % 들은 '문자화 된 숫자' ('100') 을 자동으로 숫자로 변환하여 계산한다.

var number = 100;
number = number - '50';

console.log(number); // 50 : 자동형변환으로 숫자로 계산됨

* 강제형변환

'문자회된 숫자'의 숫자합의 필요한 경우 Number를 사용한다.

var num1 = '100';
var num2 = '100';

var result = Number(num1) + Number(num2);
console.log(result);

 

 


2) 관계연산자 / 비교연산자

  • 결과가 true / false 로 처리된다.
  • 조건절로 주로 사용된다.
  • 값은 불린으로 나옴
> >= < <= == !=

* 문자일때는 가나다순으로 계산된다.
* 자동형변환

'문자화 된 숫자' ('100') 을 자동으로 숫자로 변환하여 계산한다.

양쪽 값 중 하나만 숫자여도 계산이 가능하다. 둘다 문자이면 문자열 순서대로 계산된다.

console.log(100 > '50'); //true : 자동형변환으로 숫자로 계산됨
console.log('100' > '50'); //false : 둘다 문자이므로 문자순으로 계산됨

 

일치 연산자

=== 좌변과 우변의 자료형과 값이 일치함을 나타냄
!== 좌변과 우변의 자료형과 값이 불일치함을 나타냄
if(true == 1){
	console.log('조건에 참입니다.'); // 참, 자료형이 달라도 참
}

if(true === 1){
	console.log('조건에 참입니다.'); // 거짓, 자료형이 달라서 거짓
}

 

 

 

 

3) 논리연산자

  • true나 false를 연산하는 연산자.
  • 결과가 true / false로 처리
  • 조건절로 사용된다.
&& 교집합 - 하나라도 거짓이면 거짓, 모두 참이어야 참 이항연산자
|| 합집합 - 모두 거짓일때만 거짓, 하나라도 참이면 참 이항연산자
! 여집합 - 참은 거짓으로, 거짓은 참으로 *단항 연산자는 이항 연산자보다 연산순위가 높다

 

 

 

4) 대입연산자

  • 변수 = 값 : 좌측 변수에 우측 값을 넣어준다
  • 덮어쓰기

 

 

 

5) 복합연산자

  • 축약해서 사용하는 의미의 문법
+= -= *= /= %=
a += 100; // a = a + 100;

 

 

 

6) 증감연산자

  • 단항연산자
++ 증가연산자 해당 변수의 값을 1씩 증가 a++; ++a;
-- 감소연산자 해당 변수의 값을 1씩 감소 a--; --a;
a++; 후위형 우선순위가 가장 낮다
++a; 전위형 우선순위가 가장 높다
a++; // a+=1; a=a+1;

 

 


 

 

증감연산자 연습 문제

var x = 5;
var y = 10;
var z = (x++) + (++x) + (y++);
// z = 5 + 7 + 10 = 22



var a = 5;
var i = (a++) * (++a)
// i = 5 * 7 = 35



var b = 5;
var j = (b++) * (++b) * (++b)
// j = 5 * 7 * 8 = 280



var c = 5;
var k = (++c) + (++c) + (c++) + (++c)
// k = 6 + 7 + 7 + 9 = 29



var a = 2;
var b = 3;
var c = 9;
var r1, r2, r3;
r1 = ++a + ++b;
// 7 = 3 + 4
r2 = c++;
// r2 = 9
r3 = b-- - ++a + ++a + b--;
// r3 = 4 - 4 + 5 + 3 = 8

 

 

 

참고 :)

https://blog.daum.net/leejuhee/4659030

 

[++, --] 증감연산자 사용한 문제

1. int x = 5; int y = 10; int z = (x++)+(++x)+(y++); 2. int a = 5; itn i = (a++)*(++a); 3. int b = 5; int j = (b++)*(++b)*(++b); 4. int c = 5; int k = (++c)+(++c)+(c++)+(++c); // z = 5+7+10 = 22 //..

blog.daum.net

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ksmcoco2&logNo=80029665770 

 

c언어 증감연산자 문제;;

#include <stdio.h>main(){ int a=2,b=3,c=9,r1,r2,r3;r1=++a+ ++b;r2=c++;r3=b-- - ++a + ++a + b--;...

blog.naver.com

 

'Study > JavaScript' 카테고리의 다른 글

JavaScript - 6. 내장함수 inner Function  (0) 2021.11.25
JavaScript - 4, 5. 변수와 배열  (0) 2021.11.24
JavaScript - 2. Data Type  (0) 2021.11.24
이스케이프 시퀀스 Escape Sequence  (0) 2021.11.24
JavaScript - 1. 개요와 역사  (0) 2021.11.24