반응형

# 자바스크립트 학습

# 함수 호출 구조

## toString()

구분 데이터(값)
data 문자열, String 인스턴스
파라미터 사용하지 않음
반환 변환한 값
  • data 위치의 값을 String 타입으로 변환
var value = 123;
var result = value.toString();
log(typeof result);

=>
string
  • 빌트인 toString 오브젝트는 "123".toString(); 처럼 문자열로 작성해야 한다.
  • String 타입을 String 타입으로 변환이 필요한 이유
 __proto__ 로 구조적으로 가져가는데
 
 앞의 __proto__ 에 함수이름을 작성한 것은 아래의 toString이 실행되지 않도록 하기 위함이다.
 (아래에 있는 것은 프로퍼티를 toString 으로 변환하는 것이고,
 위이 것은 문자열을 toString 으로 변환하는 것이다.)
 
 =>
 즉, 문자열을 문자열로 변환하는 것이지만,
 프로퍼티를 문자열로 변환하는 것을 방지하기 위해
 빌트인 String 오브젝트에 toString 함수를 작성한다.
__proto__;
	toString();		// 빌트인 String 오브젝트의 toString
__proto__;
	toString();		// 빌트인 오브젝트의 toString
  • 대부분의 빌트인 오브젝트에는 toString()과 valueOf()가 있다. (없는것도 있다.)

## 자바스크립트의 함수 호출 구조

  • 먼저 데이터 타입으로 오브젝트를 결정한다.
  • 오브젝트의 함수를 호출한다.
var value = 123;
value.toString();

"123".toString();
  • toString(123) 처럼 123을 파라미터에 작성
var result = toString(123);
log(result)

=>
[object Undefined]


빌트인 오브젝트의 toString 함수로 호출,
123을 오브젝트로 간주하여 object 형태를 문자열로 변환한다.

# 인덱스로 문자열 처리

## charAt()

구분 데이터(값)
data 반환 대상
파라미터 반환 기준 인덱스(index)
반환 인덱스 번째 문자
  • 인덱스의 문자를 반환한다.
var value = "sports";
log(value.charAt(1));
log(value[1]);

=>
p
p
  • 문자열 길이보다 인덱스가 클 경우, 빈 문자열을 반환한다.
var value = "sports";
log(value.charAt(12));

=>
""	// 빈 문자열 반환.
  • 일반적으로 존재하지 않으면 undefined를 반환한다.
var value = "sports";
log(value[12]);

=>
undefined

## indexOf()

구분 데이터(값)
data 검색 대상
파라미터 검색할 문자열
검색 시작 위치, 디폴트: 0
반환 인덱스
  • data 위치의 문자열에서 파라미터의 문자와 같은 첫 번째 인덱스를 반환한다.
  • 검색 기준
1. 왼쪽에서 오른쪽으로 검색
var value = "123123";
log(value.indexOf(2));
log(value.indexOf(23));

=>
1
1

처음에 검색되는 문자의 인덱스가 반환.
값을 구하게 되면 더 이상 값을 구하지 않는다.


2. 두 번째 파라미터를 작성하면 작성한 인덱스부터 검색한다.
var value = "123123";
log(value.indexOf(2, 3));

=>
4


3. 같은 문자가 없으면 -1을 반환한다.
var value = "123123";
log(value.indexOf(15));

=>
-1
  • 두 번째 파라미터의 검색 기준
var value = "123123";
log(value.indexOf(2, -1));		// 두 번째 파라미터 값이 0보다 작으면 처음부터 검색(0번 인덱스 부터)
log(value.indexOf(2, 9));		// 두 번째 파라미터 값이 length보다 크면 -1 반환
log(value.indexOf(2, "A"));		// 두 번째 파라미터가 NaN이면 처음부터 검색(0번 인덱스 부터)

=>
1
-1
1

## lastIndexOf()

구분 데이터(값)
data 검색 대상
파라미터 검색할 문자열
검색 시작 위치, 디폴트: 0
반환 인덱스
  • data 위치의 문자열에서 파라미터의 문자와 같은 인덱스를 반환한다. (단, 뒤에서 앞으로 검색한다.)
var value = "123123";
log(value.lastIndexOf());

=>
4
  • 검색 기준
1. 투 번째 파라미터를 작성하면 작성한 인덱스부터 검색
var value = "1231231";
log(value.lastIndexOf(1, 4));
log(value.lastIndexOf(2, -1));

=>
3
-1		// 두 번째 파라미터가 0보다 작으면 -1 반환

# 문자열 연결, 대소문자 변환

## concat()

구분 데이터(값)
data 연결 시작 값, String 인스턴스
파라미터 연결 대상opt, 다수 작성 가능
반환 연결한 결과
  • data 위치의 값에 파라미터 값을 작성 순서로 연결하여 문자열로 반환한다.
  • String 인스턴스를 작성하면 프리미티브 값을 연결한다.
var result = "sports".concat("축구", 11);
log(result);

var obj = new String(123);
log(obj.concat("ABC"));

=>
sports축구11
123ABC

## toLowerCase()

구분 데이터(값)
data 변환 대상
파라미터 사용 하지 않음
반환 변환 결과
  • 영문 대문자를 소문자로 변환한다.
log("ABCDE".toLowerCase());

=>
abcde

## toUpperCase()

구분 데이터(값)
data 변환 대상
파라미터 사용 하지 않음
반환 변환 결과
  • 영문 소문자를 대문자로 변환한다.
log("abcde".toUpperCase());

=>
ABCDE
반응형

+ Recent posts