😩
지금 나의 가장 큰 문제점은 알고리즘 문제가 안풀린다는 것이다.
자바스크립트 문법은 당연히 모르고 코어 자바스크립트 문법도 모르다보니 과제로 내어주는 래퍼런스 코드를 보더라도 이해가 되지 않는 부분들이 많다.
내 방식대로 풀어볼려고 해도 내가 생각한 로직으로 코드 문장을 작성하고 디버깅 하다보면 이상한 곳에서 내가 원하는 값이 도출이 안되기 일쑤였다.이때부터 악순환의 반복이 시작된다.
🤬
알고리즘 문제를 푼다 > 모르는 부분이 발생한다 > 모르는 부분을 찾는다(3~4시간이 지난다) >
다시 알고리즘 문제를 푼다 > 모르는 부분이 발생한다 > 모르는 부분을 찾는다(3~4시간이 지난다)
이런 악순환의 고리에 빠지면 아무것도 하는게 없이 하루가 지나간다..
이게 한 두문제가 그러면 상관없는데 대부분의 문제가 그러니..
내가 풀어야 하는 문제들이 쌓여가고 정말 스트레스다
if([2,1,3] === [2,1,3]) return console.log('true');
문제를 풀다가 이런 문장을 작성한 적이 있는데 나는 당연히 true가 나올것이라 생각했지만 false였다.
왜 그런지 구글링을 해보니 javascript에 기본형 type의 데이터와 참조형 type의 데이터가 존재한다는 사실을 알게되었다(진짜 나만 몰랐나봐).
결론적으로 위에서 false가 나왔던 이유는 배열이 참조형 타입의 데이터였기 때문이다.
참조형 타입의 데이터들은 변수에(Address) 데이터(Value)를 할당할 때 Value가 다른 메모리 공간의 주소로 채워진다. 때문에 우리는 같은 값으로 보이는 데이터 일지라도 컴퓨터는 다른 값으로 인식한다.
let a = JSON.stringify([2,1,3])
let b = JSON.stringify([2,1,3])
if(a === b) return console.log('true');
JSON.stringify()메소드를 사용하면 가능하다.
하지만 어떤 특수한 케이스에서 적용이 안될 경우도 있는데 그것에 대한 해결방법은 여기 블로그에서 찾을 수 있었다.
기본형, 참조형에 대한 더 자세한 포스팅을 보고싶으시다면
여기로
여기도
눈덩이 굴러간다..⛄️