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
- css
- 예외처리
- 뷰
- 주니어 개발자
- NavigationDuplicated
- cubic-bezier
- Router
- webpack
- vuetify
- 성능 최적화
- lazy loading
- jest
- 세션
- Django
- 렌더링 최적화
- DOM
- vue.js
- 장고
- 프론트엔드
- 세션스토리지
- frontend
- Transition
- 라우터
- 안드로이드
- VUE
- 자바스크립트 #javascript #렌더링 #렌더링순서
- 로컬스토리지
- vue #vue.js #font #web-font
- vue-router
- virtual dom
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