오늘의 나는 무엇을 배웠을까?
JS
1. JS의 데이터 타입
1-1. 심볼 (Symbol) - ES2015 추가
- 기본형 데이터 타입
- 코드 내 유일한 값을 가진 변수 이름 만들 때 사용
const symbol = Symbol('심볼에 대한 설명')
- 심볼 값을 담은 변수는 다른 어떤 값과 비교해도
true
가 될 수 없음
- 동일한 설명을 붙인 심볼을 비교해도
false
반환
const symbol1 = Symbol('나는 심볼');
const symbol2 = Symbol('나는 심볼');
console.log(symbol1 === symbol2);
1-2. BigInt - ES2020 추가
2**53 - 1
초과 -(2**53 - 1)
미만의 정수를 다룰 때 사용
- JS가 배정밀도(double-precision 64-bit) 부동소수점 형식 숫자체계 를 사용하기 때문에 위와 같은 범위가 나옴
let bigNum = 10n
과 같이 일반 정수 뒤 n을 붙이거나
let bigNum = BigInt(number)
와 같이 함수를 사용
- 소수 표현 불가, 소수 형태 결과 반환 연산 시 정수 형태로 반환
BigInt
타입끼리만 연산 가능하지만 타입 변환 시 다른 타입과도 연산 가능
1-3. function에 typeof 연산자를 사용하면?
- JS에서 함수는 객체로 취급 된다
- 함수에 typeof 연산자를 사용하면 어떤 결과가 나올까
function hello() {
console.log('Hello');
}
typeof(hello);
- 위와 같이
object
가 아닌 function
을 반환함을 기억하자
2. falsy & truthy
2-1. falsy 값과 truthy 값
if
for
문의 조건부분처럼 불린 타입의 값이 필요한 맥락에서 불린 타입이 아닌 값도 불린 타입으로 형 변환
- falsy :
False
로 평가되는 값
false
null
undefined
NaN
0
''
- truthy :
True
로 평가되는 값
나머지 모든 값. 빈 배열 및 객체 포함
2-2. AND(&&)와 OR( || )의 연산 방식
- AND(
&&
) 연산자
왼쪽 피연산자가 truthy 하면 오른쪽 피연산자 반환
왼쪽 피연산자가 falsy 하면 왼쪽 피연산자 반환
- OR(
||
) 연산자
왼쪽 피연산자가 truthy 하면 왼쪽 피연산자 반환
왼쪽 피연산자가 falsy 하면 오른쪽 피연산자 반환
- AND, OR 연산자의 연산 우선순위
AND 연산자가 OR 연산자보다 우선순위가 높음
혼란을 막기 위해 소괄호 () 를 활용하여 우선순위를 명확히 표현하자
console.log(true || false && false);
console.log('String' || NaN && false);
2-3. null 병합 연산자 - ES2020 추가
??
를 사용하여 null
또는 undefined
값을 가려냄
const ex1 = null ?? 'Nice';
const ex2 = undefined ?? 'to meet';
const ex3 = 'you' ?? 'Bye';
console.log(ex1, ex2, ex3);
- 왼쪽 피연산자가
null
또는 undefined
면 오른쪽 피연산자 반환
- 왼쪽 피연산자가 그 외의 값이라면 왼쪽 피연산자 반환