String
- 문자로 이루어진 데이터
- 따옴표로 감싸진 형태로 작성한다. 작은 따옴표, 큰 따옴표 모두 사용 가능하다.
- 따옴표 안에 따옴표를 담는것은 가능하지만 같은 따옴표를 사용하면 도중에 닫는 것으로 인식한다.
"I say "go away"" (x), "I say 'go away'"(O), 'You had me at "hello"'(O)
index
- 문자열은 인덱싱되어있다.
- 인덱스를 통해 각 문자에 접근할 수 있다. 인덱스는 0으로 시작하며 존재하지 않는 인덱스는 undefinded 라고 뜬다.
- .length를 사용하여 길이를 구할 수 있다. length는 1으로 시작한다.
- 변수에 넣지 않고 length를 확인할 수 있다. 예) "lol".length;
속성(변경 불가, 접합)
- 문자열에서 일부를 수정 할 수 없고 새로운 문자열을 덮어써야한다.
- 문자열과 문자열을 접합해 하나의 문자열로 만들 수 있다.
- 문자열과 숫자를 합치면 자바스크립트는 숫자를 문자열로 바꿔 접합한다.
method
- 문자열에 적용할 수 있는 메소드 세트가 있다. (개발자 도구 - 문자열 뒤에 .을 입력하면 메소드 목록이 나온다)
argument
let str = "haha that is so funny!";
str.slice(5, 9);
// start index와 end index를 인수로 받는다. (end index는 선택사항)
// 실행 결과값: "that"
str.slice(-6);
// 실행 결과값: "funny!"
str.replace('haha', 'lolololol');
// 실행 결과값: "lolololol that is so funny!"
"lol".repeat(2);
// 실행 결과값: "lollol"
- 인수 : 메소드에 전달되어 메소드의 동작을 변경하는 입력 값
- 인수가 있어야 동작하는 메소드에는 인수를 전달해야 한다.
- 인수에 음수 인덱스를 전달할 수 있다. 예) slice 메소드에 음수 인덱스를 start index 인수로 전달하면 문자열 길이 + start index를 더한 값으로 취급된다. 즉, 음수를 입력하면 뒤에서부터 출력된다.
template literals
- 템플릿 리터럴을 이용하면 문자열 안에 어떤 코드를 작성해도 표현식으로 취급한다.
- 달러 괄호 안에는 변수, 연산, 메소드 호출 등 코드 작성이 가능하다.
`hello ${1+2+3}`
// 실행 출력값: "hello 6"
null
- 일부러 값을 지정하지 않는 상태로 설정하는 것
- 아무 값이 없을 때
undefined
- 정의된 값이 없는 상태이다. 예) 변수를 정의하기만 했을 때. let x;
- 직접 설정할 수는 없고 상태를 나타낸다.