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로 평가될 경우, 가장 마지막에 있는 값을 반환함.