본문 바로가기

Coding/Book5

모던 자바스크립트 Deep dive - 데이터 타입 숫자 타입 모든 수를 실수로 처리한다. 2진수, 8진수, 16진수를 변수에 할당하고, 그 변수를 참조하였을 경우 모두 10진수로 해석된다. const value = 0o101; console.log(vaule) // 0o101이 아니라 65가 출력된다.​ 심벌 타입 변경 불가능한 원시 타입, 다른 값과 중복되지 않는 유일무이한 값. 주로, 이름이 충돌할 위험이 없는 객체의 유일한 property키를 만들기 위해 사용. Symbol 함수를 호출하여 생성. 심벌 값은 외부에 노출되지 않으며, 다른 값과 절대 중복되지 않는 유일무이한 값. =? 그냥 property를 만들어도 동작하는데 심벌 타입으로 property를 생성하여 왜 쓰는 걸까? 데이터 타입 필요한 이유 값을 저장할때 확보해야 하는 메모리 공간의.. 2022. 3. 17.
모던 자바스크립트 Deep dive - 표현식과 문 값 식이 해석되어 생성된 결과 변수의 정의에 의해 변수에 할당되는 것은 값. const value = 1+2; 위 statement에서 변수 value에 할당 되는 것은 1+2가 아니라 해석 된 결과 값인 3이다. 즉, 할당 되기 전에 평가가 되어 값을 생성되어야 한다.​ 표현식과 문 문(statement)은 프로그램을 구성하는 기본 단위이며, 최소 실행 단위. 표현식은 값으로 해석 될 수 있는 문. 즉, 문 ⊂ 표현식 문이 표현식인지 아닌지 구별할 수 있는 가장 간단한 방법은 변수에 할당해보는 것. 구글 개발자도구에서 표현식이 아닌 문은 undefined로 출력됨. 2022. 3. 16.
모던 자바스크립트 Deep dive - 변수 메모리 데이터를 저장할 수 있는 메모리 셀의 집합체이며 메모리 셀의 크기는 1바이트(8비트)이다. 메모리에 저장되는 모든 값은 2진수로 저장된다. 변수 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 변수는 값이 저장되어 있는 메모리 주소와 매핑 관계를 맺으며, 이 매핑 정보도 메모리에 저장되어야 한다. 즉 변수는 값이 아니라 메모리 주소를 기억하고 있다. 개발자는 메모리 주소에 직접 접근하지 않고 변수를 통해 안전하게 값에 접근할 수 있다. 변수 선언 만약에 메모리 공간에 기존 값이 있으면 잘못된 값을 불러올 수 있으므로, 변수를 선언할 때는 메모리 공간에 undefined를 할당하여 초기화한다. 여기서 할당이란 변수에 값을 저장하는 것을 .. 2022. 3. 15.
클린코드 1장 의미 있는 이름 [21-38] 변수, 함수, 클래스의 존재 이유? 수행 기능? 사용방법에 대한 답을 할수 있는 이름으로 짓자. 코드만 봐도 맥락이 보이도록 하자. 코드의 의미를 흐리는 단어를 넣지 말자. 이름이 달라야 한다면 의미도 달라야 한다. 루프에서 반복 횟수를 세는 변수 i, j, k 는 괜찮다. 클래스와 객체 이름은 명사나 명사구가 적합하다. [32] Manager, Processor, Data, Info 등과 같은 단어는 피하자. ? = 위 단어는 명사나 명사구 인데 왜 피해야 하는 걸까? 메서드 이름은 동사나 동사구가 적합하다. [32] 생성자를 중복정의 할 때는 정적 팩토리 메서드를 사용한다. 메서드는 인수를 설명하는 이름을 사용한다. Complex fulcrumPoint = Complex.. 2022. 3. 2.
알고리즘 - 누구나 자료 구조와 알고리즘 1 자료 구조가 중요한 까닭 속도 측정 → 연산이 얼마나 “빠른가"를 측정 할 때는 얼마나 많은 단계가 필요한지를 생각 해야한다. 배열에 데이터 삽입 → 삽입할 공간을 만들기 위해 기존 데이터를 이동시키는 단계가 필요함. 맨 뒤의 데이터부터 순차적으로 한칸씩 이동 한다. 배열에서 데이터 삭제 → 메모리에 빈 공간이 있으면, 효율적이지 않음. 데이터 삭제 후, 남은 데이터를 이동 시켜 빈 공간을 메우는 작업이 필요함. 집합에 데이터 삽입 → 중복 된 데이터가 있는지 먼저 확인 하여야 하므로, 검색 단계 + 삽입 단계가 필요함. 결론 → 중복 제한이 없다면 배열이 집합 보다 좋다. 2022. 3. 2.