English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
문자열은 하나 또는 여러 문자로 구성된 시퀀스로, 문자, 숫자 또는 기호로 구성될 수 있습니다.
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)을 사용하면 쓰기와 편리성이 더 좋습니다.
문자열이 따옴표로 감싸져야 하므로, 다음 내용은 오류가 발생합니다. 이는 브라우저가 문자열의 끝을 혼동할 수 있습니다:
var x = 'We'll never give up'; var y = "She said 'Hey' and left";
escape sequence은 그들을 코드 부분으로 대체하지 않기 위해 처리하는 것을 의미합니다.
JavaScript에서는 문자 \\ 앞에 반취를 추가하여 이를 달성합니다.
Code | result | description |
---|---|---|
\' | ' | 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 시퀀스가 유효합니다:
Code | description |
---|---|
\b | backspace |
\f | page break |
\n | newline |
\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를 반환합니다.