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가 반환됩니다.