[JS] String문법

박두팔이·2024년 2월 23일
0

자바스크립트

목록 보기
4/9

String

문자열 객체

  • String object는 원시 데이터 형이다.

String object를 생성하는 3가지 방법

  • new
  • ""
  • ''
var a = new String('문자열');
var b = String('문자열');
var c = '문자열';
alert(a == b && b == c);

String 메서드

1. charAt()

return: index로 주어진 값에 해당하는 문자를 리턴, 값이 없다면 공백이 출력

  • 맨 왼쪽부터 시작해서 0으로 인덱싱 되어있다.
  • 인덱스가 0부터 시작하기 때문에 index로 들어갈 수 있는 가장 큰 수는(string.legnth -1)이다.
var stringName = 'coding everybody';
alert(stringName.charAt(0)); // c
alert(stringName.charAt(stringName.length-1)); // y
alert(stringName.charAt(1000) == ''); // true

2. charCodeAt()

return: index에 해당하는 문자의 unicode 값을 리턴

  • 유니코드는 모든 시스템에서 일관되게 문자를 표현하기 위한 산업표준이다.
  • charCodeAt은 주어진 index에 해당하는 유니코드 값을 리턴하는데 이 값은 unicode가 지원되는 모든 시스템에서 동일한 문자를 가르킨다.
  • charAt 는 index에 해당하는 문자를 리턴하고, chartCodeAt은 유니코드 값을 리턴하는 차이가 있다.
var stringName = '생활코딩'
alert(stringName.charCodeAt(0)); // 493373 
// http://www.unicode.org/charts/PDF/UAC00.pdf 에서 '생'을 찾아보면 'C0DD'인데 이것은 16진수다. 
// 이를 10진수로 변환하면 493373이 된다. 

3. concat()

return: 문자열과 문자열을 합친 값을 리턴한다.

  • string1과 stingN을 합친 값을 리턴한다.
  • 문자열들 값은 변경되지 않는다.
  • concatenation(접합)의 줄임말
s1="생활"
s2="코딩"
s3="-"
s4="자바스크립트로 배우는 프로그래밍"
s5=s1.concat(s2,s3,s4) // returns 생활코딩-자바스크립트로 배우는 프로그래밍</span>"
alert(s5);
alert(s1+','+s2+','+s3+','+s4) // 인자로 전달된 변수들의 값은 변경되지 않는다

4. indexOf()

return: 문자열 내에서 특정한 문자열의 index 값을 리턴한다.

  • stringValue에서 특정한 문자열의 위치(index)를 반환한다.
  • 탐색하려는 문자열이 존재하지 않는다면 -1을 반환한다.
var stringValue = '생활코딩 - 자바스크립트 레퍼런스';
alert(stringValue.indexOf('생활')); // 0
alert(stringValue.indexOf('코딩')); // 2
alert(stringValue.indexOf('PHP')); // -1, PHP는 stringValue안에 존재하지 않는다
 
alert(stringValue.indexOf('자바스크립트',0)); // 7
alert(stringValue.indexOf('자바스크립트',2)); // 7, 두번째 인자로 2가 주어지면 탐색의 대상이 '코딩 - 자바스크립트 레퍼런스'로 줄어든다. index 값은 변하지 않는다
alert(stringValue.indexOf('자바스크립트',10)); // -1, '크립트 레퍼런스'에는 '자바스크립트'가 없기 때문에 -1을 리턴한다 

5. lastIndexOf()

return: 검색된 문자열이 처음 발견된 위치에 해당하는 index 값

  • 문자열에서 특정 문자열의 위치 값(index)를 반환한다.
  • indexOf가 처음 발견되는 문자열에 대한 index를 반환하는 반면,
  • lastIndexOf는 마지막 문자열의 index를 반환한다.
var stringName = 'everybody';
alert(stringName.lastIndexOf('every')); // 0
 
var stringName = 'coding everybody';
alert(stringName.lastIndexOf('every')); // 7
 
var stringName = 'coding everybody everywhere';
alert(stringName.indexOf('every')); // 7, lastIndexOf와 indexOf의 차이

6. localeComapare()

return: 문자열과 문자열을 비교하여 결과에 따른 숫자를 반환

alert('a'.localeCompare('b')); // -1
alert('b'.localeCompare('a')); // 1
alert('b'.localeCompare('b')); // 0

7. match()

return: 정규표현식 패턴과 일치하는 문자열을 담고 있는 배열을 리턴. 만일,
해당되는 문자열이 없을 경우 null을 리턴

var str="coding everybody, everywhere, everytime";
var patt1=/every.+/gi;
alert(str.match(patt1)); // [everybody, everywhere, everytime] 배열을 반환함

8. replace()

return: 문자열을 다른 문자열로 치환한 결과를 리턴

  • 문자열에서 주어진 패턴(regexp|substr)에 해당하는 부분을 새로운 데이터(newSubStr)로 치환 후 반환.
  • 인자로 주어진 값(newSubstr)은 변하지 않음.
var str="000님  환영합니다. hello world"; 
alert(str.replace('000', 'egoing')); // 문자를 이용해서 값을 치환
alert(str.replace(/000/gi, 'egoing')); // 정규표현식을 이용해서 값을 치환

return: 정규표현식을 이용해 문자열내에서 특정한 문자열의 위치 값을 알아냄

-indexOf, lastIndexOf 와 다른 점은 전자가 검색대상으로 문자열을 사용하지만, search는 정규표현식을 사용함

var str="coding everybody";
alert(str.search('e'));  // 7, 인자로 문자열을 전달하면 안시적으로 정규표현식 객체로 형변환
alert(str.search(/e/));  // 7, 정규표현식을 이용해서 위치를 검색

10. slice()

return: string, 검색결과에 해당하는 문자열

  • 문자열에서 첫번째 인자와 두번째 인자 사이에 해당하는 문자열을 검색해서 리턴한다.
  • 두번째 인자(end)를 지정하지 않으면 문자열의 끝까지를 검색대상으로 한다.
var str = 'coding everybody';
alert(str.slice(6,12)) // every
alert(str.slice(6)) // everybody, 두번째 인자를 생략했기 때문에 문자열 전체를 대상으로 검색
alert(str.slice(-6)) // rybody, 첫번째 인자가 음수이면 문자의 끝에서부터 검색함
alert(str) // coding everybody, str의 원래 값은 변하지 않음

11. split()

return: integer, 검색된 문자열의 위치(index)

  • indexOf, lastIndexOf 와 다른 점은 전자가 검색대상으로 문자열을 사용하지만, search는 정규표현식을 사용함
var str="coding everybody";
alert(str.search('e'));  // 7, 인자로 문자열을 전달하면 안시적으로 정규표현식 객체로 형변환
alert(str.search(/e/));  // 7, 정규표현식을 이용해서 위치를 검색

12. substr()

return: 문자열에서 특정한 구간의 문자열을 추출한다.

  • 문자열 중 첫번째 인자(start)에서부터 두번째 인자(length)까지의 구간에 해당하는 문자열을 반환한다.
  • length를 지정하지 않으면 start에서부터 문자열 전체를 처리구간으로 간주한다.
  • start가 양수일 경우, 문자의 길이 보다 작으면 빈문자열이 리턴된다.
  • start가 음수일 경우, start의 index는 문자열의 뒤에서부터 시작된다.
var str = 'coding everybody';
alert(str.substr(7)) // everybody
alert(str.substr(7,5)) // every
alert(str.substr(-4)) // body, 음수인 경우 뒤에서부터 카운팅 alert(str.substr(-4,2)) // bo
alert(str);

13. substring()

return: 문자열에서 특정한 구간의 문자열을 추출한다.

  • from과 to 모두 index 0부터 시작하는 위치 값을 가진다.
  • from이 to 보다 작으면 from부터 to사이의 문자열을 리턴한다.
  • from이 to 보다 크면 to부터 from 사이의 문자열을 리턴한다.
  • from과 to가 같으면 빈문자열을 리턴한다.
var str = 'coding everybody';
alert(str.substring(0)) // coding everybody 
alert(str.substring(0,6)) // coding 
alert(str.substring(7,0));  // coding 
alert(str.substring(7,2)); // ding

14. toLowerCase()

return: 문자열을 소문자로 변환해서 반환

var str = 'Coding EveryBody';
alert(str.toLowerCase()); // coding everybody

15. toUpperCase()

return: 문자열을 대문자로 변환해서 반환

var str = 'Coding EveryBody';
alert(str.toUpperCase()); // CODING EVERYBODY

16. valueOf()

return: 문자열에 대한 원시데이터형(primitive value)을 리턴

  • 자바스크립트 내부적으로 사용되고, 실제 자바스크립트는 작성할 때 코드상으로는 사용되지 않는다.
x = new String("Hello world");
alert(x.valueOf())          // Displays "Hello world"
profile
기억을 위한 기록 :>

0개의 댓글