TIR: 완벽가이드 1-2. 코어자바스크립트배열(3)- 220626

Lumpen·2022년 6월 26일
0

TIR

목록 보기
13/40

배열

배열은 특별한 형태의 객체다

typeof 배열 === 'object' // true

배열을 검사하기 위해서는

Array.isArray(배열)

유사 배열 객체

  • length 프로퍼티
  • length 값 변경으로 배열 크기를 줄일 수 있다
  • Array.prototype에 정의된 메소드를 상속 받는다
  • 배열의 class 속성 값은 'Array'

유사 배열 객체 생성

const a = {}
let i
for(i=0; i<10; i++){
  a[i] = i
}
a.length = i

Arguments 객체가 유사 배열 객체
유사 배열은 Array.prototype을 상속받지 않기 때문에
배열 메소드를 사용할 수 없다
대신 Function.call()을 통해 간접 호출을 할 수 있다
-> Function 객체의 메소드 call() 사용

const a = { '0': 'a', '1': 'b', '3': 'c', length: 3 }
Array.prototype.slice.call(a, 0) // ['a', 'b', 'c']
//	실제 배열이 반환된다

문자열

문자열은 인덱스로 접근 가능하지만 수정할 수 없다
하지만 시도해도 오류가 발생하지 않고 아무 일이 일어나지 않는다

킹치만 문자열에서도 Function.call()을 통해 배열 메소드를 사용할 수 있다
역시나 문자열을 수정할 순 없지만 새로운 데이터로 반환하는 메소드는 사용 가능

const s = 'JavaScript'
const result = Array.prototype.filter.call(s, (item) => item.match(/[^aeiou]/)).join("")
console.log(result) // JvScript
profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글