본문 바로가기

자바스크립트13

[JS] iterator 이터러블 이터레이션 프로토콜 이터레이션 프로포콜은 순회 가능한 데이터 컬렉션(자료구조)을 만들기 위해 ECMAScript 사양에 정의하여 미리 약속한 규칙이다. ES6 이전: 순회 가능한 데이터 컬렉션인 배열, 유사 배열 객체, 문자열 등은 통일된 규약없이 for문, for...in문, forEach등 다양한 방법으로 순회할 수 있었다. ES6: 배열, 유사 배열 객체, 문자열 등 순회 가능한 데이터 컬렉션을 이터레이션 프로토콜을 준수하는 이터러블로 통일하여 for...of문, 스프레드 문법, 디스트럭처링 할당의 대상으로 사용할 수 있도록 일원화하였다. 이터레이션 프로토콜에는 이터러블 프로토콜과 이터레이터 프로토콜이 있다. // 순회 가능한 자료 구조 [Symbol.iterator]() // iterat.. 2020. 7. 23.
[JS] Symbol Symbol ECMAScript로 표준화된 자바스크립트로 ES6에 새롭게 추가된 7번째 타입으로 변경 불가능한 원시 타입의 값이다. 다른 값과 중복되지 않는 유일무이한 값이며, 주로 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용한다. Symbol 생성 Symbol 함수 Symbol 함수를 호출하여 생성한다. 다른 원시값, 즉 문자열, 숫자, 불리언, undefined, null 타입의 값은 리터럴 표기법을 통해 값을 생성할 수 있지만 심볼 값은 Symbol 함수를 호출하여 생성해야 한다. Symbol함수는 String, Number, Boolean 생성자 함수와는 달리 new 연산자를 사용하지 않는다. new Symbol(); // TypeError description 프로퍼티와 to.. 2020. 7. 23.
[JS] 함수형 프로그래밍 - 기본 평가 코드가 계산되어 값을 만드는 것 일급 - 값으로 다룰 수 있다. 함수의 인자로 사용될 수 있다. 함수의 결과로 사용될 수 있다. const a = 10; // 값으로 다룰 수 있다. 변수에 담을 수 있다. const add10 = a => a + 10; // 함수의 인자로 사용될 수 있다. const r = add10(a); console.log(r); // 20 함수의 결과로 사용될 수 있다. 일급 함수 함수를 값으로 다룰 수 있다. 조합성과 추상화의 도구이다. const add5 = a => a + 5; console.log(add5); // a => a + 5 console.log(add5(5)); // 10 const f1 => () => () => 1; console.log(f1()); /.. 2020. 7. 20.
[JS] 실행 컨텍스트 실행컨텍스트 식별자, 스코프, 호이스팅, 클로저 등의 동작 원리를 담고 있다. 스코프를 기반으로 식별자와 식별자에 바인딩된 값을 관리하는 방식과 호이스팅이 발생하는 이유, 클로저의 동작 방식에 대해 이해할 수 있다. 소스 코드의 타입 전역 코드: 전역에 존재하는 소스 코드, 전역에 정의된 함수, 클래스 등의 내부 코드는 포함되지 않는다. 함수 코드: 함수 내부에 존재하는 소스 코드, 함수 내부에 중첩된 함수, 클래스 등의 내부 코드는 포함되지 않는다. eval 코드: 빌트인 전역 함수인 eval함수에 인수로 전달되어 실행되는 소스코드 모듈 코드: 모듈 내부에 존재하는 소스 코드, 모듈 내부의 함수, 클래스 등의 내부 코드는 포함되지 않는다. 실행 컨텍스트의 스택 자바스크립트 엔진은 전역 코드를 평가하여 .. 2020. 7. 6.