- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- C++
- Angular
- 알고리즘
- map
- 이터러블
- html
- 자바스크립트
- deep dive
- 네트워크
- get
- 백준 실버
- 비동기
- js
- git
- git error
- 웹
- http
- 백준
- async
- 에러처리
- Java Script
- es6
- 상태관리
- JavaScript
- error
- 모던 자바스크립트
- 모던 자바스크립트 deep dive
- 그림으로 배우는 http&network
- 프론트엔드
- React
목록js (37)
sharingStorage

디스트럭처링 할당 디스트럭처링 할당은 구조화된 배열과 같은 이터러블 또는 객체를 destructuring(비구조화, 구조파괴)하여 1개 이상의 변수에 개별적으로 할당하는 것을 말한다. 배열과 같은 이터러블 객체 또는 객체 리터럴에서 필요한 값만 추출하여 변수에 할당할 때 유용하다. 36.1 배열 디스트럭처링 할당 다음은 ES5와 ES6에서 구조화된 배열을 디스트럭처링하여 1개 이상 변수에 할당하는 방법이다. 배열 디스트럭처링 할당을 위해서는 할당 연산자 왼쪽에 값을 할당받을 변수를 선언해야한다. 이때 변수를 배열 리터럴 형태로 선언한다. 배열 디스트럭처링 할당의 기준은 배열의 인덱스다. 순서대로 할당되며 변수의 개수와 이터러블의 요소 개수가 반드시 일치할 필요는 없다. 배열 디스트럭처링 할당을 위해 변수..

spread 문법 ES6에서 도입된 스프레드 문법 ...은 하나로 뭉쳐 있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만든다. 스프레드 문법을 사용할 수 있는 대상은 Array, String, Map, Set, DOM 컬렉션, arguments 와 같이 for ... of 문으로 순회할 수 있는 이터러블에 한정된다. 스프레드 문법의 결과는 값이 아니다. 따라서 결과를 변수에 할당할 수 없고 다음과 같이 쉼표로 구분한 값의 목록을 사용하는 문맥에서만 사용가능하다. 함수 호출문의 인수 목록 배열 리터럴의 요소 목록 객체 리터럴의 프로퍼티 목록 35.1 함수 호출문의 인수 목록에서 사용하는 경우 Math.max 메서드의 인수로 배열을 전달할 때 스프레드 문법 사용시 간결하고 가독성이 더 좋다. 스프..

34.1 이터레이션 프로토콜 ES6에서 도입된 이터레이션 프로토콜은 순회 가능한 데이터 컬렉션을 만들기 위해 ECMAScript 사양에 정의하여 미리 약속한 규칙이다. ES6이전에 다양한 방법으로 순회할 수 있었지만 ES6에선 순회 가능한 데이터 컬렉션을 이터레이션 프로토콜을 준수하는 이터러블로 통일하여 for...of, 스프레드 문법, 배열 디스트럭처링 할당의 대상으로 사용할 수 있도록 일원화했다. 이터레이션 프로토콜에는 이터러블 프로토콜과 이터레이터 프로토콜이있다. 이터러블 프로토콜 Well-kwown Symbol인 Symbol.iterator를 프로퍼티 키로 사용한 메서드를 직접 구현하거나 프로토타입 체인을 통해 상속 받은 Symbol.iterator메서드를 호출하면 이터레이터 프로토콜을 준수한 이..

33.1 심벌이란? 심벌은 ES6에서 도입된 7번째 데이터 타입으로 변경 불가능한 원시 타입의 값이다. 심벌은 다른 값과 중복되지 않는 유일무이한 값이다. 주로 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용한다. 33.2 심벌 값의 생성 심벌값은 Symbol 함수를 호출하여 생성해야한다. 이 때 생성된 심벌 값은 외부로 노출되지 않아 확인할 수 없다. Symbol 함수에는 선택적으로 문자열을 인수로 전달할 수 있다. 이 문자열은 심벌 값에 대한 설명으로 디버깅 용도로만 사용되고 심벌 값 생성에 어떠한 영향도 주지 않는다. 심벌 값은 암묵적으로 문자열이나 숫자 타입으론 변환되지 않고 불리언 타입으론 암묵적 타입 변환이 가능하다. 33.2.2 Symbol.for / Symbol.keyFor..

32.1 String 생성자 함수 표준 빌트인 객체인 String 객체는 생성자 함수 객체다. 따라서 new 연산자와 함께 호출하여 String 인스턴스를 생성할 수 있다. String 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[StringData]] 내부 슬롯에 빈 문자열을 할당한 String 래퍼 객체를 생성한다. String 생성자 함수에 인수를 전달하면서 호출하면 전달받은 문자열을 할당한 String 래퍼 객체를 생성한다. String 래퍼 객체는 배열과 마찬가지로 length와 인덱스를 나타내는 숫자 형식의 문자열을 프로퍼티 키로, 각 문자를 프로퍼티 값으로 갖는 유사 배열 객체 이면서 이터러블이다. String 생성자 함수의 인수로 문자열이 아닌 값을 전달하면 문자열..

31.1 정규표현식이란? 정규표현식은 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어다. 정규표현식은 문자열을 대상으로 패턴 매칭 기능을 제공한다. 패턴 매칭 기능이란 특정 패턴과 일치하는 문자열을 검색하거나 추출 또는 치환할 수 있는 기능을 말한다. 휴대폰 전화번호가 유효한지 매칭해보는 코드 예제 정규표현식의 장점 : 위 예시에서 정규표현식을 사용하지 않는다면 반복문과 조건문을 통해 한문자씩 연속해서 체크해야 한다. 정규 표현식 사용시 반복문과 조건문 없이 패턴을 정의하고 테스트하는 것으로 간단히 체크할 수 있다. 정규표현식의 단점 : 정규 표현식은 주석이나 공백을 허용하지 않고 여러가지 기호를 혼합하여 사용하기 때문에 가독성이 좋지 않다. 31.2 정규 표현식의 생성 정규 표현식..

표준 빌트인 객체인 Date 는 날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이면서 생성자 함수다. UTC는 국제표준시를 말하며 기술적인 표기에서 UTC가 사용된다. KST(한국 표준시)는 UTC에 9시간을 더한 시간이다. 현재 날짜와 시간은 자바스크립트 코드가 실행된 시스템의 시계에 의해 결정된다. 30.1 Date 생성자 함수 Date생성자 함수로 생성한 Date 객체는 기본적으로 현재 날짜와 시간을 나타내는 정수값을 가진다. 30.1.1 new Date() Date 생성자 함수를 인수 없이 new 연산자와 함께 호출하면 현재 날짜와 시간을 가지는 Date 객체를 반환한다. 30.1.2 new Date(dateString) Date 생성자 함수에 날짜와 시간을 나태내는 문자열을 인수로 전달하면 지..

표준 빌트인 객체인 Math는 수학적인 상수와 함수를 위한 프로퍼티와 메서드를 제공한다. Math는 생성자 함수가 아니므로 정적 프로퍼티와 정적 메서드를 제공한다. 29.1 Math 프로퍼티 29.1.1 Math.PI 원주율 PI값을 반환한다 29.2 Math메서드 29.2.1 Math.abs Math.abs 메서드는 인수로 전달된 숫자의 절대값을 반환한다. 29.2.2 Math.round Math.round 메서드는 인수로 전달된 숫자의 소수점 이하를 반올림한 정수를 반환한다. 29.2.3 Math.ceil Math.ceil 메서드는 인수로 전달된 숫자의 소수점 이하를 올림한 정수를 반환한다. 29.2.4 Math.floor Math.floor 메서드는 인수로 전달된 숫자의 소수점 이하를 내림한 정수를..

28.1 Number 생성자 함수 표준 빌트인 객체인 Number 객체는 생성자 함수 객체다. 따라서 new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다. new 연산자를 사용하지 않고 Number 생성자 함수를 호출하면 Number 인스턴스가 아닌 숫자를 반환한다. 28.2 Number 프로퍼티 28.2.1 Number.EPSILON ES6에서 도입된 Number.EPSILON은 1과 1보다 큰 숫자 중에서 가장 작은 숫자와의 차이와 같다. Number.EPSILON는 약 2.2204460...x 10^-16이다. 다음 예제와 같이 부동소수점 산술 연산은 정확한 결과를 기대하기 어렵다. Number.EPSILON은 부동소수점으로 인해 발생하는 오차를 해결하기 위해 사용한다. 28.2...

27.1 배열이란 배열은 여러개의 값을 순차적으로 나열한 자료구조다. 자바스크립트에 배열이라는 타입은 존재하지 않는다. 배열은 객체 타입이다. 27.2 자바스크립트 배열은 배열이 아니다. 자료구조에서 말하는 배열은 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조를 말한다. 즉, 배열의 요소는 하나의 데어터 타입으로 통일되어 있으며 서로 연속적으로 인접해 있다. 이러한 배열을 밀집 배열(dense array)이라 한다. 하지만 자바스크립트 배열은 일반적인 의미의 배열과 다르다. 즉, 배열의 요소를 위한 각각의 메모리 공간은 동일한 크기를 갖지 않아도 되며, 연속적으로 이어져 있지 않을 수도 있다. 이렇게 배열의 요소가 연속적으로 이어져 있지 않은 배열을 희소 배열(sparse array)이..