Frontend/modern javascript
자바스크립트 이차원 배열 참조의 함정
igoman2
2022. 2. 11. 02:07
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
자바스크립트 비교연산자를 쓰는데 오류가납니다.
console.log(r[a][b]); if(r[a-1][b-1] != '-' && r[a-1][b-1] != '+' && r[a-1][b-1] != '*' && r[a-1][b-1] != '#') r[a-1][b-1] -= Q; 해당내용으로 실행을 시켜보니 TypeError: Cannot read
hashcode.co.kr
728x90