String 객체

2023. 1. 6. 15:56Javascript/TCP school

자바스크립트에서의 문자열 표현

큰따옴표("")나 작은따옴표('')를 사용

예제
var firstStr = "이것도 문자열입니다.";      // 큰따옴표를 사용한 문자열

var secondStr = '이것도 문자열입니다.';     // 작은따옴표를 사용한 문자열

var thirdStr = "나의 이름은 '홍길동'이야."  // 작은따옴표는 큰따옴표로 둘러싸인 문자열에만 포함될 수 있음.

var fourthStr = '나의 이름은 "홍길동"이야.' // 큰따옴표는 작은따옴표로 둘러싸인 문자열에만 포함될 수 있음.

문자열의 길이

length 프로퍼티에 저장

예제
var strKor = "한글";

var strEng = "abcABC";

strKor.length; // 2

strEng.length; // 6

코딩연습 ▶

아스키(ASCII) 인코딩 환경

영문자는 한 글자당 1바이트

한글은 한 글자당 2바이트

 

UTF-8 인코딩 환경

영문자는 한 글자당 1바이트

한글은 한 문자당 3바이트로 표현

 

자바스크립트의 length 프로퍼티는 해당 문자열의 총 바이트 수를 저장하는 것이 아닌 글자의 개수만을 저장


이스케이프 시퀀스(escape sequence)

1. 16진수 이스케이프 시퀀스(hexadecimal escape sequence)  \x~~

2. 유니코드 이스케이프 시퀀스(unicode escape sequence)  \u~~

3. 유니코드 코드 포인트 이스케이프(unicode code point escape)  String.fromCodePoint(0x00~~)

 

예제
// 16진수 이스케이프 시퀀스로 \x 다음은 16진수 수로 인식됨.
'\xA2';   
// 유니코드 이스케이프 시퀀스로 \u 다음은 유니코드로 인식됨.
'\u00A2';
// ECMAScript 6부터 새롭게 추가된 유니코드 코드 포인트 이스케이프 방식임.
String.fromCodePoint(0x00A2);

/*
¢
¢
¢
*/

코딩연습 ▶

String.fromCodePoint() 메소드는 사파리, 익스플로러에서 지원하지 않음

긴 문자열 리터럴을 나누어 표현하기

역 슬래시(\)나 결합(+) 연산자를 사용

예제
document.write("이 문자열은 아주 긴 문자열입니다. \
따라서 몇 번에 걸친 줄 나누기가 필요합니다. \
자바스크립트에서는 역슬래시와 문자 결합 연산자를 사용하여 줄을 나눌 수 있습니다.<br>");
document.write("이 문자열은 아주 긴 문자열입니다." + 
" 따라서 몇 번에 걸친 줄 나누기가 필요합니다." + 
" 자바스크립트에서는 역슬래시와 문자 결합 연산자를 사용하여 줄을 나눌 수 있습니다.");

/*
이렇게 줄이 나뉜 문자열은 코드 내에서만 표현되며, 웹 페이지에서는 기존과 같이 하나의 문자열로 표현됩니다.

이 문자열은 아주 긴 문자열입니다. 따라서 몇 번에 걸친 줄 나누기가 필요합니다. 자바스크립트에서는 역슬래시와 문자 결합 연산자를 이용하여 줄을 나눌 수 있습니다.
이 문자열은 아주 긴 문자열입니다. 따라서 몇 번에 걸친 줄 나누기가 필요합니다. 자바스크립트에서는 역슬래시와 문자 결합 연산자를 이용하여 줄을 나눌 수 있습니다.
*/

코딩연습 ▶

역 슬래시(\)를 사용한 방식은 ECMAScript의 표준 방식이 아님
따라서 특정 웹 브라우저에서는 정상적으로 표현되지 않을 수도 있음

String 객체

자바스크립트에서 문자열은 보통 문자열 리터럴을 사용하여 표현

하지만 문자열을 나타낼 때 new 연산자를 사용하여 명시적으로 String 객체를 생성할 수도 있음

이러한 String 객체는 문자열 값을 감싸고 있는 래퍼(wrapper) 객체

 
예제
var str = "JavaScript";
var strObj = new String("JavaScript");
str;              // "JavaScript"
strObj;           // "JavaScript"
typeof str;       // string
typeof strObj;    // object
(str == strObj);  // 문자열 값이 같으므로, true를 반환함.
(str === strObj); // 문자열 값은 같지만 타입이 다르므로, false를 반환함.

코딩연습 ▶


참고

http://www.tcpschool.com/javascript/js_standard_string

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

'Javascript > TCP school' 카테고리의 다른 글

Array 객체  (0) 2023.01.10
String 메소드  (0) 2023.01.09
Date 메소드  (0) 2023.01.06
Date 객체  (0) 2023.01.06
Math 객체  (0) 2023.01.06