Number
String
Boolean
Null
Undefined
Symbol
const user = Symbol();
const user = Symbol('this is a user');
Symbol
값을 담게 된 user
라는 이름의 변수는 다른 어떤 값과 비교해도 true가 될수 없는 고유한 변수const user = Symbol('this is a user');
user === 'this is user'; // false
user === 'user'; // false
user === 'Symbol'; // false
user === true; // false
user === false; // false
user === 123; // false
user === 0; // false
user === null; // false
user === undefined; // false
BigInt
자바스크립트에서 아주 큰 정수를 표현하기 위해 등장한 데이터 타입
자바스크립트에서 안전한 최대 정수는 2^53-1
로 9007199254740991인데 숫자 범위를 초과하는 정수값을 사용하려고 하면 연산에 미세한 오류가 발생
console.log(9007199254740991 + 1 === 9007199254740991 + 2); // true
console.log(9007199254740991 + 2); /// 9007199254740992
console.log(9007199254740993); /// 9007199254740992
console.log(9007199254740993n); // 9007199254740993n
console.log(BigInt(9007199254740993)); // 9007199254740993
// falsy
Boolean(false);
Boolean(null);
Boolean(undefined);
Boolean(0);
Boolean(NaN);
Boolean('');
// truthy
Boolean(true);
Boolean('codeit');
Boolean(123);
Boolean(-123);
Boolean({});
Boolean([]);
AND 연산자는 왼쪽 피연산자가 falsy 값일 때 왼쪽 피연산자를 truthy 값일 때 오른쪽 피연산자를 리턴
OR 연산자는 왼쪽 피연산자가 truthy 값일 때 왼쪽 피연산자를 falsy 값일 때 오른쪽 피연산자를 리턴
console.log(null && undefined); // null
console.log(0 || true); // true
console.log('0' && NaN); // NaN
console.log({} || 123); // {}
console.log(true || false && false); // true
console.log((true || false) && false); // false
console.log('Codeit' || NaN && false); // Codeit
console.log(('Codeit' || NaN) && false); // false
ES2020에서 추가된 연산자
null
, undefined
값을 가려내는 연산자
const example1 = null ?? 'I'; // I
const example2 = undefined ?? 'love'; // love
const example3 = 'Codeit' ?? 'JavaScript'; // Codeit
console.log(example1, example2, example3); // I love Codeit
Tomorrow better than today, Laugh at myself
- 출처 -