Programing/JavaScript

자바스크립트 문자열(String)에 대한 모든것 javaScript Strings

리커니 2015. 7. 20.
반응형

자바스크립트 문자열(String)에 대한 모든것  javaScript Strings

 

자바스크립트 string은 텍스트를 저장하고 다루기 위해 사용된다.

 

-javaScript Strings

자바스크립트 string은 "adam lee" 와 같은 문자들의 열을 간단하게 저장한다.

String은 따옴표(인용부호)안에 어떠한 텍스트도 쓸수 있다. 싱글('')과 더블("") 모두 사용 가능하다.

 

예)

var userName= "adam lee01";   //더블
var userName= 'brian lim02';    //싱글

 

물론 둘다 중복으로 사용도 가능하다.

 

예)

 

var answer = "It's alright";
var answer = "He is called 'Johnny'";   //출력결과 => He is called 'Johnny'
var answer = 'He is called "Johnny"';   //출력결과 => He is called "Johnny"

 

하지만 주의점이 있다. 아래의 예를 보자.

 

예)

 

var y = "We are the so-called "Vikings" from the north.";

 

위와같이 동일한 따옴표가 사용될 경우 자바스크립트는 문자열을 오해한다.

위의 y 값을 출력할 경우 원하지 않는 문자열이 출력될 것이다.

 

이 문제를 해결하는 방법은 '\' 를 사용하는 것이다. (이를 이스케이프 문자라한다.)

백슬레쉬는 특수문자를 String값으로 바꾼다.

 

var y = "We are the so-called \"Vikings\" from the north."

 

위 처럼 " 앞에 \를 붙이게 되면 뒤의 " 는 String으로 인식되어 올바르게 출력된다.

 

백슬래쉬(\) 를 사용하면 다른 특수문자 또한 삽입할 수 있다.

\를 사용해 추가할 수 있는 특수문자는 아래와 같다.

 

코드  결과 
\'  싱글 따옴표 
\"  더블 따옴표 
\\  역슬래쉬 
 \n  줄바꿈
 \r  캐리에이지 리턴 (커서를 그 줄 처음으로 이동)
 \t  탭
 \b  백스페이스
 \f  폼피드 (한장 넘어가 출력)

 

 

 

- String 문자열길이

문자열의 길이는 length 속성을 사용하여 알아낼 수 있다.(변수.length)

 

<script>
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.getElementById("demo").innerHTML = txt.length;   //출력결과 => 26
</script>

 

알파벳은 총 26개다..

 

- 너무 긴 코드를 자를 때 사용되는 백스페이스(\)

최고의 가독성을 위해 프로그래머는 종종 80자보다 더 긴 문자를 피하곤 한다.

만약 자바스크립트문이 한줄에 작성되지 않을 경우, 최고의 방법은 연산자 후에 줄을 바꾸는 것이다.

 

예)

 

document.getElementById("demo").innerHTML =
"Hello Dolly.";

 

맞게 출력된다. 하지만 아래의 경우 출력이 되지 않는다.

 

예)

 

document.getElementById("demo").innerHTML = "Hello
Dolly.";

 

이럴때 백슬레쉬를 사용하면 문자열이 출력된다.

 

예)

 

document.getElementById("demo").innerHTML = "Hello \
Dolly.";

 

하지만 이 방법은 자바스크립트 표준이 아니다.

몇몇 브라우저는 이게 작동 하지 않을 수 있다.

그래서 가장 안전한 (그러나 약간은 느린) 방법은 아래의 예와 같이 "+"를 사용하는 것이다.

 

예)

 

document.getElementById("demo").innerHTML = "Hello" +
"Dolly!";

 

코드라인은 \를 이용해 나눌수 없고, 오직 string만 가능하다는 것을  주의하자.!

 

document.getElementById("demo").innerHTML = \
"Hello Dolly!";

 

위 코드는 잘못된 사용임.

 

- String은 object가 될수 있다.

보통 자바스크립트 String은 literals로 부터 생성된 원초적인 값이다. var firstName = "adam"

하지만 String은 new키워드와 함께 오브젝트로 정의될 수도 있다. var firstName = new String("adam")

 

예)

 

var x = "adam";                    //타입은 String
var y = new String("adam");  //타입은 Object

 

String을 object로 생성하지 마라. 이것은 실행속도를 느려지게 하고, 다루기 어려운 문제를 야기한다.

 

위의 x와 y를 비교해 보자.

x == y 는 true이다. 왜냐하면 x와 y는 같은 값을 가지고 있기 때문이다.

그럼 x === y 는? false이다. 왜냐하면 둘은 같은 값을 가지고 있지만 다른 타입이다.

typeof를 써서 변수의 타입을 보면 x는 string, y 는 object이다.

 

그리고 만약에 오브젝트 끼리 비교를 한다면

 

var x = new String("adam");  //타입은 Object
var y = new String("adam");  //타입은 Object

 

x == y 는 false이다. 자바스크립트에서 오브젝트 끼리는 비교할 수 없다.

 

- String 속성(properties)과 메소드(Methods)

 

속성(property)  설명 
constructor  Strng object의 prototype을 생성한 함수를 리턴
 length 문자열 길이를 리턴
 prototype 프로퍼티와 메소드를 object에 추가하는 것을 허용

 

 

mothod  설명 
 charAt() 지정한 인덱스에 해당하는 문자값 반환
 charCodeAt() 지정한 인덱스에 해당하는 문자값의 유니코드 반환
 concat() 문자열을 합쳐서 반환
 fromCharCode() 유니코드 값으로부터 문자값을 반환
 indexOf() 매개변수와 일치하는 문자열의 위치를 반환(정방향검색)
 lastIndexOf() 매개변수와 일치하는 문자열의 위치를 반환(역방향검색)
 localeCompare() 지역에 특화된 문자 순서를 사용하여 문자열을 다른 문자열과 비교한다.
 match() 매개변수와 일치하는 문자열을 찾아서 반환
 replace() 문자열을 찾아 새로운 문자열로 변환
 search() 문자열을 찾아 몇번째 위치했는지 반환
 slice() 문자열의 시작과 끝을 받아 그 부분을 반환
 split() 문자열을 잘라 배열로 반환
 substr() 문자열을 잘라서 반환(시작, 몇번째까지)
 substring() 문자열을 잘라서 반환(지정된 두 매개변수 사이값을)
 toLocaleLowerCase() 호스트 환경의 현재 로케일을 고려하여 모든 영문자가 소문자로 변환된 문자열을 반환
 toLocaleUpperCase() 호스트 환경의 현재 로케일을 고려하여 모든 영문자가 대문자로 변환된 문자열을 반환
 toLowerCase() 모든 문자열을 소문자로 반환
 toString() 개체를 나타내는 문자열을 반환한다.
 toUpperCase() 모든 문자열을 대문자로 반환
 trim() 문자열의 공백을 제거
 valueOf() 지정한 개체의 원시값을 반환한다.

 

반응형

댓글

💲 추천 글