String 객체
2023. 1. 6. 15:56ㆍJavascript/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
'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 |