본문 바로가기

JS3

[Javascript] Iterable (이터러블) 📍 Intro Iterate 는 '반복하다' 는 사전적 의미를 가지고 있는 용어로, 프로그래밍에서는 주로 '반복 가능한 객체' 를 의미한다. 자바스크립트에만 존재하는 개념은 아니지만, 자바스크립트의 이터러블 개념을 학습하면 다른 프로그래밍 용어에도 쉽게 적용할 수 있다. ✨ ES6 에 추가된 Iterable ECMAScript 는 자바스크립트를 표준화하고 토대를 구성하기 위해 만들어진 표준화된 스크립트 프로그래밍 언어이며, ES6은 6번째 ECMAScript 버전을 의미한다. ES6 은 2015년에 제정되었는데, 이전까지 문제가 되었던 많은 부분들이 해결되고 기능이 대거 추가되어 자바스크립트의 가독성과 유지보수성을 향상했다. ES6에는 기존에 없었던 Scope, parameter handling, 구조분.. 2021. 10. 13.
[Javascript] 클로저(Closure) 클로저 (Closure) 는 함수형 프로그래밍 언어에서 사용되는 중요한 특성으로, JS 뿐만 아니라 하스켈이나 스칼라 등의 언어에도 등장한다. MDN 이 정의하는 클로저는 다음과 같다. 클로저는 함수와 함수가 선언된 어휘적(렉시컬) 환경(Lexical environment)의 조합이다. 렉시컬 환경에 대한 논의는 이전 글에서 간략히 했으나, 클로저에 대한 이해를 돕기 위해서 깊이 알아야 하는 개념이므로 렉시컬 환경의 개념부터 알아보자. ✨ 렉시컬 환경과 [[Environment]] 📌 렉시컬 환경 렉시컬 환경은 렉시컬 스코프를 가지고 있다. 렉시컬 스코프는 함수의 스코프와 함수가 정의된 위치에 따라 결정되는 상위 스코프이다. JS 는 렉시컬 환경을 따르기 때문에, 함수의 호출 위치가 아닌 정의한 위치에 .. 2021. 10. 6.
[Javascript] 구조분해 할당 ✨ 구조분해 할당(Destructuring)이란? 배열이나 객체의 속성을 해체하여 값을 개별 변수에 담을 수 있게 해주는 표현식이다. Python 등의 언어에도 동일한 기능이 존재한다. // 구조분해 할당 : 배열 let [a, b] = [1, 2] console.log(a) // 1 console.log(b) // 2 let x = [1, 2, 3, 4, 5]; let [y, z] = x; console.log(y); // 1 console.log(z); // 2 // 구조분해 할당 : 객체 let {a, b} = {a: 4, b: 10} console.log(a) // 4 console.log(b) // 10 let {x} = {x: 10} let {y} = {y: 20} let z = {x, y} .. 2021. 6. 5.