-
TypeError: Assignment to constant variable(feat. 변수 선언의 중요성)error handling 2022. 2. 25. 11:33반응형
알고리즘 문제를 풀다가 로직에 문제가 없다고 생각했는데 계속 틀려서 오류를 살펴보니
정확한 뜻을 알기 위해 구글링 결과
코드 중에서 자바스크립트 내에서 변수 선언이 잘못 이루어졌을 때 발생한다고 한다. 이 코드 8번째 줄에서const rotateMatrix = function (matrix, k) { // 2차원 배열을 시계방향으로 90도 돌려야한다. // 맨 마지막 배열이 각각 matrix[m][0]을 차지하게 된다. // matrix에서 첫 번째 배열부터 unshift(x)로 afterMatrix 담아준다. // afterMatrix 새롭게 편성된 배열을 담아준다. if (matrix.length === 0) return []; const matrixRotate = []; const matrixTemp = []; // for문으로 matrix[0].length만큼 돌고, 다시 for문으로 matrix 마지막 배열부터 첫번째 배열로 올라오게 for (let i = 0; i < matrix[0].length; i++) { for (let j = matrix.length - 1; j >= 0; j--) { matrixTemp.push(matrix[j][i]) } matrixRotate.push(matrixTemp) matrixTemp = []; } if (--k) { return rotateMatrix(matrixRotate, k); } else { return matrixRotate; } };
matrixTemp를 const로 선언했는데 이 값에 다시 []을 할당해서 에러가 발생했다.
// ... const matrixTemp = []; <----------------------------- // for문으로 matrix[0].length만큼 돌고, 다시 for문으로 matrix 마지막 배열부터 첫번째 배열로 올라오게 for (let i = 0; i < matrix[0].length; i++) { for (let j = matrix.length - 1; j >= 0; j--) { matrixTemp.push(matrix[j][i]) } matrixRotate.push(matrixTemp) matrixTemp = []; <------------------------------ } // ...
자바스크립트 변수 선언에서 const에는 재할당이 불가능하고 let은 재할당이 가능하다는 기본적인 사실을 간과했다.
* 변수 선언 시에 상황을 고려해서 const 와 let 을 사용하자 !
반응형'error handling' 카테고리의 다른 글
배포 단계에서 발견한 에러(This XML file does not appear...) (0) 2022.04.18 [ERROR] You are running `create-react-app` 4.0.3, which is behind the latest release (0) 2022.03.25 Headers에서 Content-Type과 Accept의 차이(Feat. OAuth 2.0) (0) 2022.03.19 error: failed to push some refs to (feat. git push 에러) (0) 2022.02.28 git push 오류 (url, ssh) (0) 2022.02.25