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 | 31 |
Tags
- 세션
- virtual dom
- vue.js
- css
- VUE
- vue #vue.js #font #web-font
- 자바스크립트 #javascript #렌더링 #렌더링순서
- jest
- lazy loading
- 안드로이드
- 뷰
- vuetify
- webpack
- frontend
- 프론트엔드
- DOM
- 예외처리
- NavigationDuplicated
- cubic-bezier
- 주니어 개발자
- 라우터
- 로컬스토리지
- 장고
- Django
- Transition
- Router
- vue-router
- 렌더링 최적화
- 세션스토리지
- 성능 최적화
Archives
- Today
- Total
한준호
자바스크립트 이차원 배열 참조의 함정 본문
728x90
코테를 풀던 중 인덱스에 대한 예외 처리를 하면서 다음과 같은 결과가 나오는 것을 알게되었다.
둘 다 존재하지 않는 인덱스에 대해 참조를 하였지만 결과가 달랐다.
자바스크립트의 경우 이차원 배열은 사실 일차원 배열이 쪼개져 있는 것이다. 즉, a[0][1] 을 참조하게 되면 a[0]으로 부터 배열을 반환받고 a[0]에서 다시 [1] 의 요소를 찾게 된다. 따라서 a[-1][0] 의 경우는 undefined[0] 과 같고 undefined는 인덱스 요소를 가지지 않기 때문에 Error가 나오게 되고 a[0][-1]의 경우는 a[0]인 [1, 2]의 -1번째 요소를 참초하게 되므로 undefined가 나오게 된다.
const a = [[1,2], [3,4]]
console.log(a[-1][0]) // Error
const a = [[1,2], [3,4]]
console.log(a[0][-1]) // undefined
728x90
'Frontend > modern javascript' 카테고리의 다른 글
[Modern javascript] REST API (0) | 2021.10.04 |
---|---|
[modern javascript] 브라우저 렌더링 과정 (0) | 2021.09.30 |
[Modern javascript] 배열(2) (0) | 2021.09.14 |
[Modern javascript] 배열(1) (0) | 2021.09.12 |
[Modern javascript] ES6 함수의 추가 기능 (0) | 2021.09.02 |
Comments