전체 글(52)
-
undefined와 null
undefined와 null undefined를 자바스크립트 엔진이 자동으로 부여할 때 - 값을 대입하지 않은 변수, 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때 - 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때 - return 문이 없거나 호출되지 않는 함수의 실행 결과 배열에서 사용자가 직접 undefined를 할당할 경우 배열 요소를 순회하는 것과 관련된 배열 메서드의 순회 대상이 되지만 비어있으면 순회 대상에서 제외된다. forEach, map, filter, reduce 등이 다른 결과를 나타냄 배열도 객체인걸 생각하면 존재하지 않는 프로퍼티에 대해 순회할 수 없다. 배열은 특정 인덱스에 값을 지정할 때 비로소 빈 공간을 확보하고 인덱스를 이름으로 지정하고 데이터의..
2020.07.19 -
불변객체와 얕은복사, 깊은 복사
불변객체(immutable object) 객체는 참조(reference) 형태로 전달하고 전달 받는다. 객체가 참조를 통해 공유되어 있다면 그 상태가 언제든지 변경될 수 있기 때문에 문제가 될 가능성도 커지게 된다. 이는 객체의 참조를 가지고 있는 어떤 장소에서 객체를 변경하면 참조를 공유하는 모든 장소에서 그 영향을 받기 때문인데 이것이 의도한 동작이 아니라면 참조를 가지고 있는 다른 장소에 변경 사실을 통지하고 대처하는 추가 대응이 필요하다. 의도하지 않은 객체의 변경이 발생하는 원인의 대다수는 “레퍼런스를 참조한 다른 객체에서 객체를 변경”하기 때문이다. 이 문제의 해결 방법은 비용은 조금 들지만 객체를 불변객체로 만들어 프로퍼티의 변경을 방지하며 객체의 변경이 필요한 경우에는 참조가 아닌 객체의 ..
2020.07.19 -
데이터타입과 변수
자바스크립트는 메모리 공간을 비교적 넉넉하게 사용. 숫자의 경우 기본 8바이트 (1비트는 +- 부호, 11비트는 지수부, 52비트 가수부) 모든 데이터는 메모리 주솟값을 통해 서로 구분하고 연결할 수 있다. 변수 - 변경 가능한 데이터가 담길 수 있는 공간 : 변할 수 있는 데이터를 담는 공간을 만든다. 이 데이터의 식별자는 a로 한다 ->let a 변수명은 공간의 이름, 식별자 변수영역과 데이터 영역 정확히는 식별자의 메모리 주소값의 '값'에는 데이터가 저장된 메모리 주소값이 들어간다. 장점은 메모리 용량의 가변성 보장 이렇게 할 경우 변수의 데이터를 변경할 경우 변경될 데이터를 새 메모리 공간에 넣고 값에 저장된 주소값을 변경 이 때, 주소값이 저장된 곳이 하나도 없을 경우 해당 메모리는 가비지 컬렉..
2020.07.19 -
소수 찾기 메모
function solution(n) { var answer = 0; let count = 0; let arr = new Array(); //소수가 아닌 것들을 빼면 소수가 됨 //자기자신을 제외한 모든 배수를 n개의 숫자 내에서 확인 //확인된 숫자를 다 0으로 두면 나머지가 소수 //n 까지 숫자를 전부 배열에 일단 넣고 확인하자 for (let i = 2; i
2020.06.28 -
"" 와 0
자바스크립트로 코테문제를 풀면서 배열에서 값을 아예 지우거나 하는게 번거로워서 중복을 피하기 위해 '' 등으로 공백을 넣곤했다 문제는 이게 0이랑 같게 판단한다는걸 깜빡했는데 아주 기초적인 부분을 놓친셈이다. undefined, null NaN 0 (숫자 리터럴) , -0 “” (빈 문자열) false 위는 자바스크립트에서 false로 동일하게 판단하는 것들이다. 꼭 기억해두자.
2020.06.21 -
RESTful API 란?
현재 서비스 중인 어플리케이션 서버를 REST API 서버라고 막연히 그랬는데, 이 참에 제대로 정리를 할까한다. 엄밀히 말하면 우리 서버는 100% REST API는 아니고, RESTful 하려고 하지만 어떤 부분들은 포기한 route가 몇몇 있어서 섞여있다 REST는 Representational State Transfer의 약자이다. 기본적으로 개발방법론이나 철학에 가깝다. REST는 http method로 보내는 Resource를 URI에 표현하는 것이 핵심이다. 이걸 해서 좋은 것은 계층화된 URI와 Resource, http method를 본다면 주석이나 특별한 설명 없이도 어떤 사람이 보든지 해당 route가 어떻게 동작하는지 알 수 있게 하기 때문이다. 이러한 통일성을 통해 다양한 영역의 ..
2020.06.18