티스토리 뷰
[모던자바스크립트] 5장 - 표현식과 연산자
표현식 : 결과적으로 어떤 값(변수, 함수 등)으로 식의 걊을 계산하는 것 (숫자, 문자, 논리값 등의 원시 값)
*원시값 :기본타입을 원시 데이터라고 하며 5, 'foo', true, false, null, undefined 와 같은 자바스크립트 값을 말합니다.
즉, 숫자, 문자열, 불리언, null, undefined 인 다섯가지 기본 타입을 말하며 이 자바스크립트값은 더 이상 단순화할 수 없기 때문에 원시적(primitive)이라 하며, 이러한 값을 가리켜 원시값이라 합니다.
출처: https://webclub.tistory.com/240 [Web Club]
- 산수 : 예를 들어 3.14159를 숫자로 평가합니다. (일반적으로 산술 연산자를 사용합니다.)
- 문자열 : 예를 들어 "Fred"나 "234"를 문자열로 평가합니다. (일반적으로 문자열 연산자를 사용합니다.)
- 논리 : 참이나 거짓으로 평가합니다. (종종 논리 연산자를 수반합니다.)
- 일차식 : JavaScript에서 기본핵심어와 일반적인 표현입니다.
- 좌변식 : 좌변값들이 배치의 목적입니다.
첫번째는, 변수에 값을 할당시키는 것, x = 7 /이 표현은 x에다가 7을 할당시키기위해 =연산자를 사용합니다.
두번째는 단순히 값을 갖는것이 있습니다. 3 + 4 /이 표현은 7이라는 결과로 할당하는것없이 3과 4를 더하기위해 +연산자를 사용합니다.
연산자
산술 연산자
연산자 | 예시 | 설명 |
---|---|---|
+ |
x + y | 더하기 |
- |
x - y | 빼기 |
* |
x * y | 곱하기 |
/ |
x / y | 나누기 |
% |
x % y | 나머지 |
* 연결 연산자
. + : 연산자의 좌변과 우변의 값이 산술 연산이
불가능한 경우 두 개 의 값을 이어주는 연산자
ex) 1+2=3 <--- 산술 연산이 가능하므로 "산술연산자"
"a"+1=a1 <-- 두 개의 값을 연결하는 "연결연산자"
복합 연산자
: *대입 연산자
1. "=" 기호가 들어간 연산식
2. 좌변과 우변에 동일식이 존재한는 경우
연산자 | 예시 | 설명 |
---|---|---|
+= |
x = x + 10 | x+=10 |
-= |
x = x - 10 | x-=10 |
*= |
x = x * 10 | x*=10 |
/= |
x = x / 10 | x/=10 |
%= |
x = x % 10 | x%=10 |
증감 연산자
1. 변수의 값을 증가 또는 감소시키는 연산자
2. 선행처리 (++a), 후행처리(a++)
a = 100;
a++ : 100 + 1; 101+1, 102+1....
++a : 101, 102, 103, .......
a-- : 100 - 1, 99 - 1,..
--a : 99, 98, 97, ...
연산자 | 예시 | 설명 |
---|---|---|
++ |
x = x + 1 | x++ 또는 ++x |
-- |
x = x - 1 | x-- 또는 --x |
비교 연산자 (=관계 연산자)
연산자 | 예시 | 설명 |
---|---|---|
== |
x == y | 좌변과 우변의 값이 같을 경우에 true |
=== |
x === y | 좌변과 우변의 값이 같거나 데이터형도 같을 경우에 true |
!= |
x != y | 좌변과 우변의 값이 같지 않을 경우에 true |
!== |
x !== y | 좌변과 우변의 값이 같지 않을 경우, 또는 데이터형이 다른 경우에 true |
> |
x > y | 좌변이 우변보다 클 경우에 true |
< |
x < y | 좌변이 우변보다 작을 경우에 true |
>= |
x >= y | 좌변이 우변보다 크거나 같은 경우에 true |
<= |
x <= y | 좌변이 우변보다 작거나 같은 경우에 true |
논리 연산자
: 좌변과 우변의 식을 검토하여 결과 산출
연산자 | 예시 | 설명 |
---|---|---|
&& |
x && y | (and) 둘다 true인 경우 true |
|| |
x || y | (or) 둘 중의 하나 이상이 ture 이면 true |
! |
!x | (not) 식이 false인 경우 true |
비트 연산자
: 논리 연산자와 같은 연산자이지만 연산 기호가 1개이고 값이 1(true), 0(false)로 출력
연산자 | 예시 | 설명 |
---|---|---|
& |
x & y | x와 y의 비트 단위 AND |
| |
x | y | x와 y의 비트 단위 OR |
^ |
x ^ y | x와 y의 비트 단위 XOR |
~ |
x ~ y | x를 비트 단위로 NOT |
>> |
x >> 2 | x를 2비트만큼 왼쪽으로 이동 |
<< |
x << 2 | x를 2비트만큼 오른쪽으로 이동 |
기타 연산자
1. typeof 연산자 : 단항연산자, 피연산자의 데이터 타입을 뜻하는 문자열을 반환합니다.
var s = "ABC";
console.log(typeof s); // string(문자)
**추가 설명
1) a (피연산자) + (+연산자) b (피연산자) : 왼쪽과 오른쪽에는 피연산자가 총 2개 - >이항 연산자
2) -x : -연산자는 오른쪽에 피연산자 x 하나만 있으므로 단항 연산자 입니다.
3) ?: 삼항연산자
* 조건 연산자 - (조건)? 조건이 참일 경우 : 조건이 거짓인 경우
조건의 결과에 따라 다른 값 출력
var parity = (a % 2 == 0)? "짝수" : "홀수";
if(a % 2 == 0){
parity = "짝수";
} else {
parity = "홀수";
}
: 연산자는 일반적으로 피연산자 개수에 따라 단항연산자, 이항연산자, 삼항 연산자로 분류돕니다.
4)그룹연산자 - (a + b) * c // 9
연산자 우선순위
우선순위 | 연산자 | 설명 |
---|---|---|
1 | () [] |
괄호/대괄호 |
2 | ! ~ ++ -- |
부정/증감연산자 |
3 | * / % |
곱셈/나눔셈 연산자 |
4 | + - |
덧셈/뺄셈 연산자 |
5 | << >> >>> |
비트 단위의 시프트 연산자 |
6 | > > >= >= |
관계 연산자 |
7 | == != === !== |
관계 연산자 |
8 | & |
비트 단위 논니 곱 연산자 |
9 | | |
비트 단위 논니 부정 연산자 |
10 | ^ |
비트 단위 논니 합 연산자 |
11 | && |
논리 곱 연산자 |
12 | || |
논리 합 연산자 |
13 | ?: |
조건부 연산자 |
14 | = += -= *= /= %=
<<= >>=
>>>= &= ^= |= |
대입/할당 연산자 |
15 | , |
쉼표 |
5.2.3 부동 소수점
// 0.3을 기대했지만..
console.log(0.1 + 0.2);
// 0.30000000000000004
자바스크립트에서 숫자는 '64 비트 IEEE 754 형식'으로 다뤄지는데,
그 형식으로 표현된 0.1은 정확히 0.1과 같은 수가 아닌 0.1에 가장 가까운 2진법으로 표현 가능한 수이다.
각종 프로그래밍 언어에서 0.1 + 0.2 연산이 어떤 결과를 표시하는지 볼 수 있다. https://0.30000000000000004.com
'JAVASCRIPT' 카테고리의 다른 글
[javascript30] 드럼치기 (0) | 2020.04.07 |
---|---|
[javascript] 다차원 배열, 유사배열 (0) | 2020.04.05 |
객체와 배열, 함수의 기초 정리 (0) | 2020.03.29 |
배열의 메서드(Array.prototype) (0) | 2020.03.29 |
null vs undefined (javascript) (0) | 2019.10.25 |