Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바스크립트
- 자바스크립트 객체
- 자바스크립트 클로저
- 정규표현식
- 콜백
- 자바스크립트 배열
- 모듈
- 프로토타입 상속
- 클로저
- 자바스크립트 상속
- Safari
- 자바스크립트 유효범위
- 변수명
- mysql #mysql최적화 #최적화
- 자바스크립트 메소드
- 의미있는 이름
- 자바스크립트 모듈
- 리팩토링기법
- 리팩토링
- 자바스크립트 정규표현식
- 네이밍
- 자바스크립트 문법
- 프로토타입
- 정규식
- 자바스크립트 함수
- 자바스크립트 정규식
- 리팩토링 기법
- 클린코드
- 자바스크립트 콜백
- 리팩토링이란
Archives
- Today
- Total
개발정리
javascript / Chapter6. 배열 본문
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
00 들어가며
01 배열리터럴
02 length속성
03 삭제
04 열거
05 객체와 배열의 혼동
06 배열의 메소드
07 배열의 크기와 차원
00 들어가며
- 배열이란
- 항목의 오프셋을 계산 할 수 있는 정수를 통해 각 항목들을 접근 할 수 있는 연속적인 메모리 할당
- 매우 빠른 데이터 구조
- 하지만 자바스크립트에는 이런 배열은 없다.
- 자바스크립트의 배열은 배열같은 객체
- 느리지만 사용은 편리하다.
01 배열 리터럴
- 두 객체의 차이점
- obj는 Object.prototype을 상속받는다.
- arr은 Array.prototype을 상속받는다.
- 따라서 추가적인 기능을 제공한다.
02 length 속성
- 자바스크립트 배열 length의 특징
- 다른 언어와 다르게 상계 기반이 아니다.
최대 속성 크기보다 하나 더 큰 값.
- 따라서 속성의 갯수 != length
- length는 명시적으로 변환 가능하다.
- length값을 증가시켜도 메모리 할당은 일어나지 않는다.
- length값을 감소시키면 해당 length 이후의 속성은 삭제된다.
- 새로운 항목 추가시
- length값을 활용해 추가가능
- push사용
03 삭제
- delete 연산자를 사용한 삭제
- 배열에 구멍이 생긴다.
- splice 메소드 사용
- 삭제된 배열 속성의 오른쪽 속성을 재 삽입.
- 배열이 큰 경우 빠르지 않다.
04 열거
- for in문으로 열거 가능
- 적합하지 않다.
- 배열의 순서가 보장되지 않음.
- prototype chain에 있는 예상치 못한 값이 열거될 수 있다.
- for문을 사용해 열거하는 것이 좋다.
05 객체와 배열의 혼동
- 배열이 필요할 때와 객체가 필요할 때 구분
- 속성이름이 작은 크기의 연속된 정수일 때 배열을 사용한다.
- 아니라면 객체를 사용한다.
- 배열의 type of는 object이다.
- 자바스크립트 또한 배열과 객체를 혼동한다.
두 객체를 구분하기 위해 다음과 같은 함수 제작이 가능하다.
06 배열의 메소드
Array.prototype을 통해 메소드 추가 가능
07 배열의 크기와 차원
- 자바스크립트 배열은 보통 초기화 되지 않는다.
- [ ] 은 빈 배열
- 존재하지 않는 값 접근 시 undefined
배열에 문자가 없도록 Array.dim같은 메소드가 있어야 했다.
다차원 배열은 없지만 다음과 같이 사용 가능하다
다차원 배열의 초기화용 dim인 matrix
참고문헌
1. 더글라스 크락포드, 김명신 『자바스크립트 핵심가이드 javascript The good parts』, 한빛미디어
'JS > javascript' 카테고리의 다른 글
Chapter8 메소드 (0) | 2017.04.09 |
---|---|
javascript / Chapter7. 정규 표현식 (0) | 2017.02.26 |
javascript / Chapter5. 상속 (0) | 2017.02.26 |
javascript / Chapter4. 함수 2 (0) | 2017.02.08 |
javascript / Chapter4. 함수 1 (0) | 2017.01.31 |
Comments