English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript 기본 튜토리얼

JavaScript 객체

JavaScript 함수

JS HTML DOM

JS 브라우저 BOM

AJAX 기본 튜토리얼

JavaScript 참조 매뉴얼

JavaScript 문자열(String)

문자열은 하나 또는 여러 문자로 구성된 시퀀스로, 문자, 숫자 또는 기호로 구성될 수 있습니다.

JavaScript의 문자열은 원시 데이터 유형이며, 불변합니다. 이는 불변이라는 의미입니다.

JavaScript 문자열

JavaScript 문자열은 quote로 감싸인 0개나 더 많은 문자입니다.

var x = "JavaScript教程 ";
테스트를 보자‹/›

JavaScript에서는 선택할 수 있습니다.single quotes또는double quotes문자열을 감싸는 데 사용할 수 있습니다. 두 가지 방법 모두 정상적으로 작동합니다:

var msg1 = "Hello world";   // double quote 사용
var msg2 = 'Hello world';   // single quote 사용
테스트를 보자‹/›

문자열 내에서 quote를 사용할 수 있습니다. quote가 문자열 주위와 일치하지 않는 경우에만 가능합니다:

var str1 = 'She said "Hey" and left';  // single quote 내의 double quote
var str2 = 'She said 'Hey' and left';  // double quote 내의 single quote
var str3 = 'Let's have a cup of tea';  // double quote 내의 single quote
var str4 = 'We\'ll never give up'; // 단일quote를 escape character로 사용합니다.
테스트를 보자‹/›

문자열을 생성하는 최신 방법은템플릿 상수(template literal).

템플릿 리터럴(template literal)은 반대quote(` `)을 사용하며, 일반 문자열과 같은 방식으로 작동합니다:

var x = `이 문자열은 반대quote를 사용합니다.`;
테스트를 보자‹/›

문자열 길이 계산

length속성은 문자열의 길이를 반환합니다. 공백 문자열의 경우 길이는 0입니다.

var str = 'JavaScript教程 ';
str.length;// return 15
테스트를 보자‹/›

주의:공백도 문자로 간주됩니다.

문자열 연결

연결은 두 개나 더 많은 문자열을 연결하여 새 문자열을 생성하는 것을 의미합니다.

+ 연산자는 문자열을 추가(연결)하는 데 사용됩니다.

var str1 = "quick brown fox";
var str2 = "over the lazy dog";
var str3 = "The " + str1 + " jumps " + str2;
테스트를 보자‹/›

template literal기능의 특별한 기능은 문자열에 표현식과 변수를 포함할 수 있습니다. 연결하지 않아도 됩니다. ${} 문법을 사용하여 변수를 삽입할 수 있습니다.

var str1 = "quick brown fox";
var str2 = "over the lazy dog";
var str3 = `The ${str1} jumps ${str2}.`;
테스트를 보자‹/›

이 경우, 템플릿 리터럴(template literal)을 사용하면 쓰기와 편리성이 더 좋습니다.

escape sequence

문자열이 따옴표로 감싸져야 하므로, 다음 내용은 오류가 발생합니다. 이는 브라우저가 문자열의 끝을 혼동할 수 있습니다:

var x = 'We'll never give up';
var y = "She said 'Hey' and left";

escape sequence은 그들을 코드 부분으로 대체하지 않기 위해 처리하는 것을 의미합니다.

JavaScript에서는 문자 \\ 앞에 반취를 추가하여 이를 달성합니다.

Coderesultdescription
\''single quotes
\"double quotes
\\\backslash

이 시퀀스 \'는 문자열에 단취를 삽입합니다:

var x = 'We\'ll never give up';
테스트를 보자‹/›

이 시퀀스 \

var x = "She said \
테스트를 보자‹/›

이 시퀀스 \\는 문자열에 반취를 삽입합니다:

var x = "The character \\ is called backslash";
테스트를 보자‹/›

JavaScript에서는 다른 여섯 가지 escape 시퀀스가 유효합니다:

Codedescription
\bbackspace
\fpage break
\nnewline
\r개행
\t수평 탭
\v수직 탭

키보드 키로 입력할 수 없는 문자를 사용할 때, escape 시퀀스도 매우 유용합니다.

긴 코드 줄바꿈

최고의 가독성을 위해, 코드 행이 너무 길지 않도록 피해야 합니다.80개의 문자.

JavaScript 문장이 한 행에 맞지 않으면, 연산자 뒤에서 끊는 것이 가장 좋습니다:

document.getElementById("para").innerHTML = "The sum of 20과 30은 " +
sum;
테스트를 보자‹/›

한 행에 긴 문자열을 쓰면 빨리 읽기와 사용하기 어려워집니다。

사용할 수 있는 연결 연산자(+를 여러 행에 걸쳐 표시할 수 있습니다。

var str = "공기 오염은 화학 물질이 " +
"대기층. 그것은 환경 균형을 파괴하고 이로 인해 " +
"수많은 질병.";
테스트를 보자‹/›

여러 문자열을 사용하는 것 외에도, \ escape 문자를 사용할 수 있습니다.

var str = "공기 오염은 화학 물질이 \
대기층. 그것은 환경 균형을 파괴하고 이로 인해 \
수많은 질병.";
테스트를 보자‹/›

주의:의 메서드는 선호되지 않습니다. 그 이유는 일부 브라우저와 최소화 도구 문제를 일으킬 수 있기 때문입니다.

코드의 가독성을 높이기 위해, 우리는 대신 사용할 수 있습니다템플릿 상수(template literal)문자열. 이는 긴 문자열을 연결하거나 이스케이프하는 필요성을 제거합니다.

var str = `공기 오염은 화학 물질이
대기층. 그것은 환경 균형을 파괴하고 이로 인해
수많은 질병.`;
테스트를 보자‹/›

다양한 코드 라이브러리가 다양한 표준을 사용할 수 있기 때문에, 다중 행 문자열을 생성하는 모든 방법을 알아야 합니다.

문자 기본형과 문자 객체

일반적으로 JavaScript 문자열은 텍스트로 생성된 원시 값입니다:

var city = "New Delhi";

하지만, new 키워드를 사용하여 문자열을 객체로 정의할 수도 있습니다:

var city = new String("New Delhi");

두 가지 차이점을 테스트하기 위해 문자열 원시와 문자열 객체를 초기화하겠습니다.

var str1 = "New Delhi";
var str2 = new String("New Delhi");
typeof str1// returns string
typeof str2// returns object
테스트를 보자‹/›

주의:문자열을 객체로 생성하지 마세요. 이는 실행 속도를 낮추고 예상치 못한 결과를 초래할 수 있습니다.

== 연산자를 사용할 때, 같은 문자열은 같습니다:

var str1 = "New Delhi";
var str2 = new String("New Delhi");
document.write(str1 == str2); //return true, because str1와 str2의 값이 같습니다
테스트를 보자‹/›

=== 연산자를 사용할 때, 같은 문자열은 다릅니다. === 연산자는 값과 타입이 모두 같아야 합니다:

var str1 = "New Delhi";
var str2 = new String("New Delhi");
document.write(str1 === str2); //return false, because str1와 str2의 타입이 다릅니다
테스트를 보자‹/›

객체를 비교할 수 없습니다:

var str1 = new String("New Delhi");
var str2 = new String("New Delhi");
document.write(str1 == str2); //because str1와 str2두 객체는 다릅니다. 따라서 false를 반환합니다
document.write(str1 === str2); //because str1와 str2두 객체는 다릅니다. 따라서 false를 반환합니다
테스트를 보자‹/›

주의(!=)과(===) 사이의 차이점을 알아야 합니다. 두 JavaScript 객체를 비교할 때는 항상 false를 반환합니다.