티스토리 뷰

JAVASCRIPT

[javascript] 표현식과 연산자

jeongah story 2020. 4. 5. 05:52

[모던자바스크립트] 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
댓글
© 2018 eh2world