비실이의 개발 성장기

javascript에서의 텍스트 본문

프론트엔드/javascript

javascript에서의 텍스트

DubbingLee 2016. 12. 13. 22:39


해당 내용은 '자바스크립트 완벽 가이드' 를 토대로 공부한 뒤, 정리한 내용입니다.





#텍스트



문자 하나는 유니코드로 표현..


문자 하나에 16bit ..


문자열은 16bit 의 문자가 연속적으로 나열된 변경 불가능한 값..


문자열의 첫번째 문자의 인덱스는 0번째 위치하며, 이 문자열의 길이는 1 ..


javascript에서 문자열의 길이를 확인하려면 문자열이름.length





위 예제에서 var alphabetApple = "apple"; 는 문자가 5개이므로


문자열의 길이는 5가 된다.







#문자열 리터럴 과 이스케이프 문자


*리터럴 이란 ? 


소스 코드의 고정된 값을 대표하는 용어.




javascript에서 문자열 그대로를 표현하려면 


작은 따옴표( ' ) 또는 큰 따옴표 ( " ) 를 써준다.



이 두개 중 어느걸로 해도 무관하다.







단, 큰 따옴표로 시작했으면 큰 따옴표로 끝나야 한다.






문자열에 단축형 표현 또는 소유형 단어를 표현하기 위해 작은 따옴표가 사용 될 경우, 


그냥 사용하면 아래와 같이 에러가 발생한다.




O'Reilly로 초기화 하려 했으나 에러..



여기서 단축형 표현으로 사용 된 작은 따옴표를 이스케이프(Escape) 문자 라고 한다.


이스케이프 문자를 사용하기 위해선 역슬래쉬 ( \ ) 를 사용하면 된다.





javascript 에서 사용되는 이스케이프 시퀀스 표



*참고 : https://msdn.microsoft.com/ko-kr/library/2yfce773(v=vs.94).aspx





html에서도 문자열을 구분할 때 작은 따옴표 나 큰 따옴표를 사용하는데


html과 javascript를 혼용하여 사용 할 경우, 코드 컨벤션을 정하는게 좋다.



<button onclick="alert('Hello JS~')"> Click Me </button>


html 은 큰 따옴표, javascript 는 작은 따옴표...






ECMAScript 3 에서는 문자열은 한 줄로 작성해야 만 했는데


ECMAScript 5 부터는 역슬래쉬를 붙이면 여러 줄로 작성할 수 있다.







#문자열 다루기



자바스크립트에서 여러 문자열을 이어 붙일 때,


+ 연산자를 사용한다.







해당글의 위에서 문자열의 길이를 확인할 때 


.length 를 이용했는데, 이 외에도 javascript에는 문자열을 다루는데


사용할 수 있는 다양한 메서드가 존재한다.





위 예제에서 fullName.slice(1, 4) 를 하면 인덱스1에서 4까지 해당하는 문자를 출력한다.


허나, fullName.slice(-3) 를 하면 문자열 가장 마지막 인덱스에서 부터 3개의 문자를 출력한다.



javascript에서 문자열은 값을 바꿀 수 없는 Immutable 한 데이터 다.


그러므로 문자열 관련 메서드를 사용하여 나온 결과값은 기존 문자열을 수정하는 형태가 아닌


새로운 문자열 객체를 할당하여 결과를 담는다.






ECMAScript 5에서 문자열은 읽기 전용 배열처럼 표현된다.


첫번째 문자를 알고 싶을 경우   



로 접근 가능하다.





#패턴 매칭(정규표현)



javascript는 문자 패턴(정규표현) 을 사용하기 위해 RegExp() 생성자를 정의한다.


또, RegExp() 를 사용하지 않아도 javascript 자체적으로 정규식에 대한 리터럴 문법을 지원한다.


한 쌍의 슬래시 ( / ) 사이에 있는 문자열은 정규표현식 리터럴으로 해석한다.



/^HTML/    // HTML로 시작하는 문자열

/[1-9] [0-9]*/     // 첫번째 자릿수가 0이 아닌 숫자  



RegExp() 객체에는 여러가지 유용한 메서드를 지원한다.


또한 문자열은 RegExp() 객체를 parameter로 갖는 메서드들을 가지고 있다.









# 잘못된 내용은 댓글로 남겨주세요~


0 Comments
댓글쓰기 폼