본문 바로가기
728x90

분류 전체보기89

[JS][네이티브] Symbol() 심벌은 ES6에서 처음 선보인, 새로운 원시 값 타입이다. 심벌은 충돌 염려 없이 객체 프로퍼티로 사용 가능한, 특별한 '유일 값'이다. 주로 ES6의 특수한 내장 로직에 쓰기 위해 고안되었지만 우리도 얼마든지 심벌을 정의할 수 있다. 심벌은 프로퍼티명으로 사용할 수 있으나, 프로그램 코드나 개발자 콘솔 창에서 심벌의 실제 값을 보거나 접근하는 건 불가능하다. 심벌 값을 콘솔 창에 출력해보면 Symbol(Symbol.create)로 나온다. ES6에는 심벌 몇 개가 미리 정의되어 있는데, Symbol.create, Symbol.iterator 식으로 Symbol 함수 객체의 정적 프로퍼티로 접근한다. obj[Symbol.iterator] = function () { /* ... */ }; 심벌을 직접 정.. 2022. 2. 8.
[JS][네이티브] Date() and Error() Date() and Error() 네이티브 생성자 Date()와 Error()는 리터럴 형식이 없으므로 다른 네이티브에 비해 유용하다. date객체 값은 new Date()로 생성한다. 이 생성자는 날짜/시작을 인자로 받는다.(인자를 생략하면 현재 날짜/시각으로 대신한다.) date객체는 유닉스 타임스탬프 값을 얻는 용도로 가장 많이 쓰일 것이다. date객체의 인스턴스로부터 getTime()을 호출하면 된다. 하지만 ES5에 정의된 정적 도우미 Date.now()를 사용하는 게 더 쉽다. ES5 이전 브라우저에선 다음 폴리필을 사용하자. if (!Date.now) { Date.now = function () { return new Date().getTime(); }; } new 키워드 없이 Date().. 2022. 2. 8.
[JS] 프로토타입(prototype) 프로토타입 상속 상속이란 새로운 클래스에서 기존 클래스의 모든 프로퍼티와 메소드를 사용할 수 있는 것을 의미합니다. 상속을 통해 새로운 프로그램의 요구에 맞게 기존 클래스를 수정하여 재사용할 수 있습니다. 또한, 클래스 간의 종속 관계를 형성함으로써 객체의 관계를 조직화 할 수 있는 장점이 있습니다. 따라서 이러한 상속은 추상화, 캡슐화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나가 됩니다. 하지만 C#이나 C++과 같은 클래스 기반의 객체 지향 언어와는 달리 자바스크립트는 프로토타입 기반의 객체지향 언어입니다. 프로토타입 기반이기 때문에 상속의 개념이 클래스 기반의 객체지향 언어와는 약간 다릅니다. 자바스크립트에서는 현재 존재하고 있는 객체를 프로토타입으로 사용하여, 해당 객체를 복제.. 2022. 2. 3.
[React] Context API란? 본글은 React 공식 홈페이지를 참조하였습니다. Context context를 이용하면 단계마다 일일이 props를 넘겨주지 않고도 컴포넌트 트리 전체에 데이터를 제공할 수 있다. 일반적인 React 애플리케이션에서 데이터는 위에서 아래로 (즉, 부모로부터 자식에에) props를 통해 전달되지만, 애플리케이션 안의 여러 컴포넌트들에 전해줘야 하는 props의 경우 (예를들면 선호 로케일, UI 테마) 이 과정이 번거로울 수 있습니다. context를 이용하면, 트리 단계마다 명시적으로 props를 넘겨주지 않아도 많은 컴포ㅓㄴ트가 이러한 값을 공유하도록 할 수 있습니다. 언제 context를 써야 할까? context는 React 컴포넌트 트리 안에서 전역적(global)이라고 볼 수 있는 데이터를 공.. 2022. 1. 31.
[JS][네이티브] 래퍼 박싱하기 래퍼 박싱하기 객체 래퍼는 아주 중요한 용도로 쓰인다. 원시 값엔 프로퍼티나 메서드가 없으므로, .length, .toString()으로 접근하려면 원시 값을 객체 래퍼로 감싸주어야 한다. 고맙게도 자바스크립트는 원시 값을 알아서 박싱(래핑)하므로 다음과 같은 코드가 가능하다. var a = "abc"; a.length; // 3 a.toUpperCase(); // ABC 따라서 루프 조건 i < a.length처럼 빈번하게 문자열 값의 프로퍼티/메서드를 사용해야 한다면 자바스크립트 엔진이 암시적으로 객체를 생성할 필요가 없도록 처음부터 값을 객체로 갖고 있는 이치에 맞는 것처럼 보인다. 하지만 좋은 생각이 아니다. 오래전부터 브라우저는 이런 흔한 경우를 스스로 최적화 하기 때문이다. 즉, 개발자가 직접.. 2022. 1. 27.
[프로그래머스] 다리를 지나는 트럭 - javascript https://programmers.co.kr/learn/courses/30/lessons/42583?language=javascript 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 다리의 길이 만큼 배열을 만들고 0으로 채워줍니다. 배열이 빌때까지 반복문을 돌립니다. 이때 다리의 길이가 없어서 못건너간다면 반복문을 탈출하고 바로 정답 0을 리턴합니다. 다리의 길이가 있고 지나갈수잇을 확률이 있다면 정답 변수를 +1 해줍니다. 다리의 현재 올라가있는 트럭의 무게를 파악하기 위해 .. 2022. 1. 27.
728x90