본문 바로가기

웹개발/javascript

자바스크립트 String 오브젝트

 

 

  자바스크립트의 ES5기반으로 한 기본 개념들입니다.  

공부했던 내용을 정리하는 용도로 오류가 있을 수 있습니다.

재배포 수정하지 마세요. 

 

 

 

 


 

 

String 오브젝트

 

문자열 오브젝트, 문자를 제어하는 다양한 함수와 프로퍼티를 가지고 있다.

 

 

 

문자열 연결 

var apple = "123" + "water" + 
                "멜론";
console.log(apple);                                 //123water멜론

 

 +로 문자열을 연결하거나 역 슬래쉬(\)로 문자열을 연결할 수 있다.  줄 바꿈이 되었더라도 문장이 아래줄에서 끝난다면 연결이 된다. 

 

 

 

 

String

console.log(""+123);                                //123
console.log(typeof (""+123));                       //string
console.log(String(123));                           //123
console.log(typeof String(123));                    //string

 

파라미터 값을 String타입으로 변환하여 반환한다.

값을 작성하지 않으면 빈 문자열을 반환한다. 

 

 

 

 

new String( )

console.log(new String(123));                       //String {"123"}
console.log(typeof new String(123));                //object
console.log(new String(123).valueOf());             //123

String 인스턴스를 생성하여 반환한다. 

String()과 같이 파라미터 값을 String타입으로 변환하고 파라미터 값이 프리미티브 값이 된다. 

valueOf( ) : 인스턴스의 프리미티브 값을 반환하는 함수이다. 

 

 

 

 

length 프로퍼티  length property

var value = "lemon";
console.log(value.length);                          //5
for (var i = 0; i < value.length; i++) {
    console.log(value[i]);
};                                                  //l //e //m //o //n

 

문자수를 반환한다. length 값이 반환된다. 

 

 

 

 

trim( ) 

var value1 = "   apple   ";
console.log(value1.length);                         //11
console.log(value1.trim().length);                  //5

var value2 = "lemon";
var instanse = new String("lemon");

 

문자열 앞뒤의 화이트 스페이스를 삭제한다. 

 

 

 

toString( )

var value = 123;
var result = value.toString();
console.log(typeof result);                         //string


var value = "abc";
var result = value.toString();
console.log(typeof result);


var result = toString(123);
console.log(result);                                //Object undefined

 

데이터 위치의 값으르 String타입으로 변환한다. 

 

 

 

 

charAt( )

var a = "apple";
console.log(a.charAt(3));                           //l
console.log(a[3]);                                  //l
console.log(a.charAt(6));                           //    (빈 문자열)
console.log(a[6]);                                  //undefined  (es6)

 

인덱스의 문자를  반환한다. 

문자열의 길이가 인덱스보다 크면 빈 문자열을 반환한다. 또한 존자 해지 않으면 undefined로 반환한다. 

 

 

 

 

indexOf( )

var b = "pineapple";
console.log(b.indexOf("p"));                        //0
console.log(b.indexOf("p",3));                      //5
console.log(b.indexOf("p",-1));                     //0
console.log(b.indexOf("p","N"));                    //0
console.log(b.indexOf("c"));                        //-1

 

데이터 위치의 문자열에서 파라미터의 문자와 같은 첫번째 인덱스를 반환한다. 왼쪽에서 오른쪽을 검색을 하고 두 번째 파라미터를 작성하면 작성한 인덱스부터 검색한다. 같은 문자가 없다면 -1을 반환한다.  

만약 두번재 파라미터가 음수라면 디폴트 값인 0부터 검색을 시작한다. 

 

 

 

 

lastIndexOf( )

var b = "pineapple";
console.log(b.lastIndexOf("p"));                    //6
console.log(b.lastIndexOf("p",3));                  //0
console.log(b.lastIndexOf("p",-3));                 //0
console.log(b.lastIndexOf("c"));                    //-1

 

indexOf() 와 마찬가지로 데이터 위치의 문자열에서 파라미터의 문자와 같은 인덱스를 반환한다. 단 뒤에서 앞으로 검색한다. 두 번째 파라미터를 작성하면 작성한 인덱스부터 검색하고 파라미터가 음수라면 0을 입력한 것과 동일하게 나타난다.  

 

 

 

 

concat( )

var fruit = "apple";
console.log(fruit.concat("is",300));                //appleis300
console.log("melon".concat("is",300,"clap"));       //melonis300clap
var number = new String(1234);
console.log(number.concat("clap"));                 //1234clap

 

데이터 위치의 값에 파라미터 값을 순서대로 연결하여 문자열로 반환한다. String 인스턴스를 작성하면 프리미티브값을 연결한다.

 

 

 

 

 

toLowerCase( ), toUpperCase( )

console.log("victory".toUpperCase());               //VICTORY
console.log("VICTORY".toLowerCase());               //victory

toLowerCase( ) : string 대문자를 소문자로 바꾼다. 

toUpperCase( ) : string 소문자를 대문자로 바꾼다.

 

 

 

 

 

substring( ), substr( ), slice( )

var summerfruit = "watermelon";
console.log(summerfruit.substring(3));              //ermelon
console.log(summerfruit.substring(3, 7));           //erme

console.log(summerfruit.substr(3));                 //ermelon
console.log(summerfruit.substr(3, 2));              //er

console.log(summerfruit.slice(2, 5));               //ter

 

substring() : 파라미터의 시작 인덱스부터 끝인 덱스 직전까지 반환한다. 두번째 파라미터를 작성하지 않으면 끝까지 반환한다. 

substr() : 파라미터의 시작인덱스부터 지정한 문자 개수만큼 반환한다. 첫 번째 파라미터 값이 음수이면 length를 더해서 시작 인덱스로 사용한다. 두 번째 파라미터를 반환하지 않으면 끝까지 반환한다. 

slice() : 파라미터의 시작인덱스부터 끝 인덱스 직전까지 반환한다. 첫 번째 값을 작성하지 않거나 NaN이면 0으로 간주한다. 두 번째 파라미터를 작성하지 않으면 length를 사용하고 값이 음수이면 length값을 더해서 사용한다. 

 

 

 

 

match(), replace(), search(), split()

var sports = "basket-ball";
console.log(sports.match(/k/));                     //k
console.log(sports.match("ke"));                    //ke
console.log(sports.match("kE"));                    //null

console.log(sports.replace(/ket/,"e"));             //base-ball
console.log(sports.replace('ket',"e"));             //base-ball
console.log(sports.replace('KEt',"e"));             //basket-ball

console.log(sports.search(/k/));                    //3
console.log(sports.search('k'));                    //3
console.log(sports.search(1));                      //-1

console.log(sports.split('-'));                     //["basket", "ball"]
console.log(sports.split(''));                      //["b","a","s","k","e","-","t","b","a","l","l"]
console.log(sports.split('-', 1));                  //["basket"] 반환수
console.log(sports.split('-', 2));                  //["basket", "ball"]

 

  • match() : 정규식 객체, 문자열이 정규식과 매치되는 부분을 검색한다. 문자열이 정규식과 일치하면, 일치하는 문자를 반환한다. 일치하는 것이 없으면 null이 반환되고 파라미터를 작성하지 않으면 빈 문자열[""]이 반환된다. 
  • replace() : 정규표현식이 매치되는 결과를 두번째 파라미터에 작성한 값으로 대체한다. 만약 두 번째 파라미터에서 함수를 사용한다면 함수를 실행시키고 난 후 반환 값을 사용한다. 
  • search() : 검색된 첫번째 인덱스를 반환한다. 매치되지 않으면 -1을 반환한다. 
  • split() : 문자열중 끊어야 할 부분을 나타내는 문자열을 나타낸다. 나누어져 끊어진 부분들만 배열에 담겨 반환된다. 두 번째 파라미터에 반환될 개수를 넣어서 앞에서부터 시작해서 그만큼의 개수만 배열로 반환할 수 있다.  만약 끊어야 할 문자를 빈 문자열로 지정하면 각각의 문자가 모두 배열의 원소로 하나씩 저장되어 반환된다. 

 

 

 

 

charCodeAt( ),  fromCharCode( ),  localeCompare( )

var hobby = "sk8tE"
console.log(hobby.charCodeAt());                    //115
console.log(hobby.charCodeAt(2));                   //56
console.log(hobby.charCodeAt(8));                   //NaN

console.log(String.fromCharCode(8,115,56));         //s8

var i = "B"
console.log(i.localeCompare("A"));                  //1
console.log(i.localeCompare("B"));                  //0
console.log(i.localeCompare("C"));                  //-1

 

  • charCodeAt() : 주어진 인덱스에 대한 UTF-16 코드를 나타내는 0부터 65535 사이의 정수를 반환한다. 주어진 인덱스가 문자의 길이보다 길 경우 NaN를 반환한다. 
  • fromCharCode() : 유니코드를 문자열로 해석해 반환한다. 작성하지 안ㅎ으면 빈 문자열을 반환한다.
  • localeCompare() : 해당 문자열의 해당하는 유니코드를 비교하여 위치를 값으로 나타낸다(유니코드 사전 순). 유니코드가 앞이면 1을 뒤면 -1을 반환하고 같다면 0을 반환한다.