number
– 정수, 소수점 숫자 등. 정수의 한계는 ±253bigint
– 길이 제약 없이 정수를 나타냄string
– "", '', `` 빈 문자열이나 글자들로 이뤄진 문자열boolean
– true, falsenull
– 알 수 없는 값을 나타내는 독립 자료형undefined
– 할당되지 않은 값을 나타내는 독립 자료형object
– 데이터 컬렉션이나 복잡한 개체symbol
– 객체의 고유 식별자
- 덧셈
+
- 뺄셈
-
- 곱셈
*
- 거듭제곱
**
- 나눗셈
/
- 나눈 후 나머지
%
이 중 특이하게
+
만이 문자열을 이어붙이는 기능이 있음.
때문에 중간에 문자열이 하나만 껴도 모두 문자열로 변환됨. (ex. ""+1+3 = "13")
+
를 제외한 나머지 연산자들은 number로 값을 받기 때문에, "1" 같은 문자열도 숫자로 받아온다.(ex. "2"*"3" = 6)
but, 단항연산자로 사용했을 경우, number로 변환됨을 유의.(ex. +"1" => 1)
- null : 0
- undefined : NaN
- true / false : 1 / 0
- AND
&
- OR
|
- XOR
^
- NOT
~
- 왼쪽 시프트(LEFT SHIFT)
<<
- 오른쪽 시프트(RIGHT SHIFT)
>>
- 부호 없는 오른쪽 시프트(ZERO-FILL RIGHT SHIFT)
>>>
!
(NOT) : false/true 값을 부정 (ex. !true = false)!!
: boolean형으로 변환 (ex. !!값 = Boolean(값))&&
(AND)
- a&&
b : a, b 둘 다 true여야만 true / 둘 중 하나만 false여도 false
- a
&&
식 : a가 true면 또는 존재한다면, 뒤에가 실행됨 / false면 실행되지 않음||
(OR) : 둘 중 하나만 true여도 true, 모두 false라면 가장 마지막 피연산자의 값 반환- Nullish 병합 연산자
??
참고로, &&
와 ||
가 같이 쓰일 경우, &&
가 우선시됨. (ex. a && b || c && d = (a && b) || (c && d))
조건 ? 값A : 값B
:조건이 true일때 A를 반환, false일 때 B를 반환
코드를 짧게 쓰려는 의도로 가끔 사용
마지막 표현식의 평가 결과만 반환되는 점에 유의
let a = (1 + 2, 3 + 4); consol.log( a ); // 7 //3 + 4의 결과만 반환됨 --- // 한 줄에서 세 개의 연산이 수행됨 for (a = 1, b = 3, c = a * b; a < 10; a++) { ... }
true인 것
- 문자열(빈 문자열 제외)
- -1
false인 것
- 0, -0
- ''
- NaN
- null
- undefined (let x; 이렇게 할당 안한것도 undefined)
모든 피연산자가 False / True로 평가될 경우, 가장 마지막에 있는 값을 반환함.