1. 숫자(Number)
2. BigInt
3. 문자열(String)
4. Boolean
5. Null, Undefined
6. Symbol
7. 객체(Object)와 배열(Array)
- Set 객체 : 값의 집합
- Map 객체 : 키와 값의 연결
- 형식화 배열 : 바이트 배열과 다른 이진 데이터를 연결
- Date 타입 : 날짜 , 시간 표현
- Error 타입
- 함수
- 클래스
- RegExp 타입: 텍스트 패턴
(문자열에서 정교한 매칭, 검색, 대체 동작을 할 수 있다)
빈문자열 " "
은 길이가 0인 문자열
console.log("".length); // 0
+ 연산자로 합칠 수 있다
let a = hello;
let b = world;
console.log(a + "" + b); // hello world
나눠진 문장을 한 줄로 이어줌
console.log(
"Hello \
Wrold! \
Nice to meet you"
); // Hello Wrold! Nice to meet you
이스케이프 시퀀스 : 문자열에 표현할 수 없는 문자를 표현함
표현방법 | 뜻
---|---
\n | 한줄 바꿔서 출력
\t | 텝 간격 벌림
|\\ | 역슬래시 출력
| \' | 작은 따옴표 출력
|\"" | 큰 따옴표 출력
console.log("two \n line"); /* two
line*/
console.log("tap \t line"); // tap line
console.log("I'm a Iron Man"); // I'm a Iron Man
String.raw``
\ (백슬래시)를 익스케이프 없이 그대로 출력
let filePath = `C:\number.jpeg`;
console.log(filePath);
// C:
// umber.jpeg
//백슬래시가 줄바꿈으로 해석된 결과가 나옴
filePath = String.raw`C:\number.jpeg`;
console.log(filePath); // C:\number.jpeg 정상적으로 출력됨
String.raw( )
소괄호를 사용하는 구문은 복잡하여 거의 사용되지 않음
let first = "FIRST";
let second = "SECOND";
let third = "THIRD";
let firstExample = String.raw(
{
raw: ["one", "two", "three", "four"],
},
first,
second,
third
);
console.log(firstExample); // oneFIRSTtwoSECONDthreeTHIRDfour
//`one${first}two${second}three${third}four` 과 동일
let secondExample = String.raw(
{
raw: "test",
},
1 + 9,
first + second,
third
);
console.log(secondExample);
// t10eFIRSTSECONDsTHIRDt
// `t${1 + 9}e${first + second}s${third}t` 와 동일
console.log(`Hi
My name is Jhon!
I'm happy`);
/* Hi
My name is Jhon!
I'm happy */
let fruit = "apple";
console.log(`I like an ${fruit}`); // I like an apple
console.log(`1 + 1 = ${1 + 1}`); // 1 + 1 = 2
const 상수 = Symbol();
심볼은 코드 내에서 유일한 값을 가진 변수 이름을 만들 때 사용한다
Symbol 값을 담게 된 변수는 자기 자신 외 다른 어떤 값과 비교해도 true가 될 수 없는 고유한 변수가 된다.
const mySymbol = Symbol("this is my Symbol");
const secondSymbol = Symbol("this is my Symbol");
console.log(mySymbol === "this is my Symbol"); // false
console.log(mySymbol === Symbol); // false
console.log(mySymbol === "Symbol"); // false
console.log(mySymbol === secondSymbol); // false