JavaScript
[JavaScript] 기본 연산자
FRDYtheme
2022. 12. 1. 22:19
산술연산자
+ (더하기) : 변수의 자료형에 따라 값을 더하거나 문자열을 출력.
var num1 = 10, num2 = 20; console.log(num1 + num2);
// num1과 num2의 값이 더해져 30 출력
console.log(`num1 + num2 = ` + (num1 + num2));
// num1 + num2 = 30 // `백틱`안의 문자열 `num1 + num2`와 ()안의 숫자 num1+num2의 값 -> 30을 출력
console.log(`오늘은 ` + `즐거운 ` + `금요일`);
// '오늘은 즐거운 금요일' 출력
console.log(`11` + `22`);
// 1122 //숫자형 문자열을 문자열로 연산한다.
console.log(11 + `22`);
// 1122 //숫자 + 숫자형 문자열도 문자열로 연산한다.
- (빼기) : 변수의 값을 뺀다.
console.log(10 - 5); // = 5
console.log(`오늘은` - `즐거운`);
// 문자열의 ' - ' 는 NaN (Not a Number)로 출력
console.log(`11` - `22`); // = -11
console.log(11 - `22`);
// = -11 숫자형 문자열은 자동으로 숫자로 변환하여 연산.
* (곱하기) : 변수의 값을 곱한다.
console.log(10 * 5); // = 50
console.log(`오늘은` * `즐거운` * `금요일`); // NaN
console.log(`10` * `15`); // = 150
console.log(100 * `10`);
// = 1000 숫자형 문자열을 자동으로 숫자로 변환하여 연산.
/ (나누기) : 변수의 값을 나눈다.
console.log(100 / 10); // = 10
console.log(`문자열은` / `나누기가` / `안된다`); // NaN
console.log(`500` / `10`); // = 50
console.log(`100` / 1);
// = 100 숫자형 문자열 자동 변환 연산.
% (나머지 값) : 값을 나누고 그 나머지 값을 출력.
console.log(7 % 2); // = 1 // 7을 2로 나누고 남은 값 1 출력.
console.log(`친구들에게` % `사과를` % `2개씩` % `나눠주고` % `남은것만` % `가지기로했다`);
// NaN
console.log(`13` % `5`); // = 3
//숫자형 문자열 자동 변환 연산.
** (거듭제곱) : 값을 거듭제곱한다.
console.log(2 ** 4); // = 16 // 2의 4승, 2 x 2 x 2 x 2 = 16
console.log(`당연히` ** `안되겠지`); // NaN
console.log(`3` ** 3); // = 27
복합연산
산술연산자의 복합 연산에는 순서가 있다.
console.log(100 + 5 - 10); // = 95
console.log(10 * 10 / 25); // = 4 [왼쪽에서 오른쪽 순으로 연산]
console.log(95 + 25 / 5); // = 100 [*, /, % 는 +, -보다 먼저 연산]
console.log((50 + 10) / 6); // = 10 ['()' 연산 후 나머지 연산]
숫자형 문자열을 숫자로 자동 변환하는 연산자들은 위의 규칙을 따르고
console.log((`15` - 5) * `3`); // = 30
숫자형 문자열을 문자열로 연산하는 더하기의 경우에는 아래와 같다.
console.log((15 + 5) + `50`); // = 2050
// (괄호)안의 숫자 연산 후 20의 숫자가 연산되지만 숫자형 문자열 `50`을 만나 문자열로 연산된다.
console.log(2 * (10 + '5')); // = 210
// (괄호)안의 연산으로 '105' 숫자형 문자열이 연산되지만
// '*'는 숫자형 문자열을 숫자로 자동 변환하므로 210 출력
비교연산자
왼쪽을 기준으로 비교하며 값은 참인 true(1), 거짓인 false(0)로 연산된다.
< (작다), >(크다)
console.log(100 < 105); // = true
console.log(1 > 2); // = false
console.log(1 > 2 < 3);
// = true , 1 > 2의 값인 false가 0과 같기 때문에 0 < 3은 true가 된다.
<=(작거나 같다), >=(크거나 같다)
console.log(100 >= 90); // = true
console.log(100 >= 100); // = true
console.log(100 >= 110); // = false
console.log(10 <= 15); // = true
console.log(10 <= 10); // = true
console.log(15 <= 12); // = false
==(같다), ===(완전히 같다)
console.log(true == 1); // = true
console.log(true === 1); // = false
/* true는 1의 값을 가지기 때문에 위의 ==(같다)는 true지만
아래의 ===(완전히 같다)의 경우에는 자료형의 타입까지 같아야
true가 나오기 때문에 boolean 자료형인 true와 숫자인 1은 false가 나온다. */
!=(같지 않다), !==(완전히 같지 않다)
console.log(false != 0); // = false
console.log(false !== 0); // = true
비교연산자의 숫자형 문자열 연산
console.log(10 < `5`); // = false
console.log(`10` > 5); // = true
//숫자형 문자열과 숫자의 비교연산은 숫자형 문자열을 숫자로 자동 변환 연산.
console.log('abc' < 'def'); // true
console.log('ghi' > 'jkl'); // false
//문자열의 비교 연산시 알파벳의 순서에 따른 숫자로 비교되며, 제일 앞글자부터 차례대로 연산된다.
console.log(`abd` < `abz`); // true
console.log(`abd` > `abz`); // false
//문자열 첫 글자 자리수가 같으면 두 번째 글자로 두 번째 자리수도 같으면 세 번째 글자 자리수로 연산한다.
console.log(`100` > `50`); // = false
/* 100의 첫 번째 글자 '1'과 50의 첫번째 글자 '5'의 비교 연산
console.log(`100` < `50`); // = true
//숫자형 문자열도 제일 앞자리 숫자부터 비교하며 자리수가 같으면 다음 글자 자리수로 비교 연산
console.log(`20` > `10000`); // = true
console.log(`155557` > `155558`); // = false