JavaScript 문자열
문자열
JavaScript 문자열은 따옴표 안에 0개 이상의 문자가 입력된 문자입니다.
예제 1
let text = "John Doe";
작은 따옴표 또는 큰 따옴표를 사용할 수 있습니다.
예제 2
let carName1 = "Volvo XC60"; // 큰 따옴표
let carName2 = 'Volvo XC60'; // 작은 따옴표
문자열을 둘러싼 따옴표와 일치하지 않는 경우 문자열 내부에 따옴표를 사용할 수 있습니다.
예제 3
let answer1 = "It's alright";
let answer2 = "He is called 'Johnny'";
let answer3 = 'He is called "Johnny"';
문자열 길이
문자열의 길이를 찾으려면 기본으로 제공되는 length
속성을 사용하십시오.
예제 4
let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let length = text.length;
이스케이프 문자
문자열은 따옴표로 묶어야 하므로 JavaScript는 아래 문자열을 오해할 수 있습니다.
let text = "We are the so-called "Vikings" from the north.";
이 문자열은 “We are the socal”로 잘라집니다.
이 문제를 방지하는 방법은 백슬래시 이스케이프 문자를 사용하는 것입니다.
백슬래시(\
) 이스케이프 문자는 특수 문자를 문자열 문자로 변환합니다.
코드 | 결과 | 설명 |
\' |
’ | 작은 따옴표 |
\" |
” | 큰 따옴표 |
\\ |
\ | 백슬래시 |
\"
는 문자열에 큰 따옴표를 삽입합니다.
예제 5
let text = "We are the so-called \"Vikings\" from the north.";
\'
는 문자열에 작은 따옴표를 삽입합니다.
예제 6
let text= 'It\'s alright.';
\\
는 문자열에 백슬래시에 삽입합니다.
예제 7
let text = "The character \\ is called backslash.";
Javascript에는 6개의 이스케이프 시퀀스가 있습니다.
코드 | 결과 |
\b |
백스페이스 |
\f |
폼 피드 |
\n |
새 줄 |
\r |
캐리지 리턴 |
\t |
수평 탭 |
\v |
수직 탭 |
위의 6개의 이스케이프 문자는 원래 타자기, 텔레타이프 및 팩스기를 제어하기 위해 설계되었습니다. HTML에서는 의미가 없습니다.
긴 코드 라인 변경
프로그래머들은 가독성을 높이기 위해 코드줄이 80자를 넘지 않도록 하는 경우가 많습니다.
JavaScript 문이 한 줄에 맞지 않을 경우 가장 좋은 위치는 연산자 뒤입니다.
예제 8
document.getElementById("demo").innerHTML =
"Hello Dolly!";
단일 백슬래시로 텍스트 문자열 내의 코드 줄을 구분할 수도 있습니다.
예제 9
document.getElementById("demo").innerHTML = "Hello \
Dolly!";
\
메서드는 선호하는 방법이 아닙니다. 브라우저에서 지원하지 않을 수 있습니다. 일부 브라우저는 \
문자 뒤에 공백을 허용하지 않습니다.
문자열을 분리하는 더 안전한 방법은 문자열 덧셈을 사용하는 것입니다.
예제 10
document.getElementById("demo").innerHTML = "Hello " +
"Dolly!";
코드 라인은 백슬래시로 구분할 수 없습니다.
예제 11
// 동작 안함
document.getElementById("demo").innerHTML = \
"Hello Dolly!";
객체로써의 문자열
일반적으로 자바스크립트 문자열은 리터럴에서 생성된 원시 값입니다.
let x = "John";
문자열은 new
키워드를 사용하여 객체로 정의할 수도 있습니다.
let y = new String("John");
예제 12
let x = "John";
let y = new String("John");
문자열 객체를 만들지 마십시오. new
키워드는 코드를 복잡하게 만들고 실행 속도를 느리게 합니다. 문자열 객체로 인해 예기치 않은 결과가 발생할 수 있습니다.
==
연산자를 사용할 때 x와 y는 같습니다.
let x = "John";
let y = new String("John");
===
연산자를 사용할 때 x와 y는 같지 않습니다.
let x = "John";
let y = new String("John");
(x==y)와 (x===y)의 차이를 확인합니다.
(x == y) 는 참인가 거짓인가?
let x = new String("John");
let y = new String("John");
(x === y) 는 참인가 거짓인가?
let x = new String("John");
let y = new String("John");
두 JavaScript 객체를 비교하면 항상 false가 반환됩니다.