본문 바로가기

JavaScript13

[ES6] 배열 함수 forEach , map , reduce 2020.09.21 - [웹 프론트엔드/자바스크립트] - [ES6] 프로토타입 prototype에서 class 클래스로 이번 포스팅을 쓸까 말까 고민했습니다. ES6 이전 버전에도 이미 배열 함수는 있었고 ES6에서도 크게 다르지 않기 때문입니다. 하지만 글의 카테고리가 자바스크립트인 만큼, 배열 관련 글은 빠질 수가 없기에 간단히라도 집고 넘어가 보겠습니다. 예시로는 URL의 Query String 형식 문자열을 파싱 하는 것으로 해보겠습니다. // 웹 주소에 포함된 이름=나이 정보 var queryString = "kim=18&lee=35&park=29"; // 쿼리 스트링 파싱 함수 function queryStringParse(str) { var list = str.split("&"); var r.. 2020. 9. 25.
[ES6] 프로토타입 prototype에서 class 클래스로 2020.09.18 - [웹 프론트엔드/자바스크립트] - [ES6] 템플릿 문자열 (Template String) 프로토타입 prototype 이번 포스팅은 ES6에 추가된 클래스에 대해 설명해보려 합니다. 하지만 기존 자바스크립트의 프로토타입을 알지 못하면 비교가 어려우니, 간단하게라도 기존 버전에서는 어떻게 클래스를 표현했는지 살펴보겠습니다. 내용은 사각형의 넓이를 구하고(x * y) 그다음에 확장(extends) 또는 상속하여 부피를 구하는(x * y * z) 식입니다. // 생성자(constructor) 형태로 함수 선언 function Area(x, y) { this.name = "Area"; this.set(x, y); } // static 객체 생성 함수 Area.create = functi.. 2020. 9. 21.
[ES6] 템플릿 문자열 (Template String) 2020.09.16 - [웹 프론트엔드/자바스크립트] - [ES6] 화살표 함수와 커링 디자인 패턴 오늘은 가볍게 템플릿 문자열에 대해서 알아보겠습니다. 먼저 기존 자바스크립트의 병합 연산자(+)입니다. var val1 = "코로나"; var val2 = 9; console.log(val1 + val2); // 코로나9 var val3 = 10; console.log(val1 + val2 + val3); // 코로나910 console.log(val1 + (val2 + val3)); // 코로나19 이처럼 기존 병합 연산자는 플러스 기호를 쓰기 때문에 문자형과 숫자형의 연산이 알아보기 어렵습니다. 또한 문자열 안에 계산식을 넣을 수 없기 때문에 코드가 길어지고 가독성이 떨어집니다. (디버깅 지옥 오픈) .. 2020. 9. 18.
[ES6] 화살표 함수와 커링 디자인 패턴 2020.09.05 - [웹 프론트엔드/자바스크립트] - [ES6] 전개 연산자(spread operator) 사용법 화살표 함수 ES6에 새로 추가된 화살표 함수(arrow function)는 함수 표현을 간단하게 할 수 있습니다. 기존 함수 사용과 화살표 함수 표현식을 비교해보고, 그것을 응용한 커링 디자인 패턴을 보겠습니다. // 기존 function plusFunc(num1, num2) { return num1 + num2; } var plusFunc = function (num1, num2) { return num1 + num2; }; // ES6 var plusFunc = (num1, num2) => { return num1 + num2; }; var plusFunc = (num1, num2).. 2020. 9. 16.
[React] 컴포넌트의 데이터 관리 ① - props 프로퍼티 2020.08.18 - [웹 프론트엔드/React 리액트] - [React] 리액트 개발환경 구축 2020.09.09 - [웹 프론트엔드/React 리액트] - [React] 리액트 테스트 앱 생성 및 수정 2020.09.11 - [웹 프론트엔드/React 리액트] - [React] 리액트에서 사용하는 JSX 2020.09.11 - [웹 프론트엔드/React 리액트] - [React] 리액트의 컴포넌트를 알아보자 1. 프로퍼티로 데이터 전달해보기 전 포스팅에서 기본적인 리액트 컴포넌트 사용법을 알아봤습니다. 하지만 어떻게 서로 다른 컴포넌트 간의 데이터를 관리할까요? 이번에는 프로퍼티를 사용하여 데이터를 주고받아 보겠습니다. // ..\test_project\src\components\ChildCompo.. 2020. 9. 15.
[React] 리액트의 컴포넌트를 알아보자 2020.08.18 - [웹 프론트엔드/React 리액트] - [React] 리액트 개발환경 구축 2020.09.09 - [웹 프론트엔드/React 리액트] - [React] 리액트 테스트 앱 생성 및 수정 2020.09.11 - [웹 프론트엔드/React 리액트] - [React] 리액트에서 사용하는 JSX 1. 컴포넌트란 무엇인가? 리액트의 알파이자 오메가인 컴포넌트는 한마디로 "레고 블록"이라고 생각하시면 됩니다. 내가 필요한 여러 블록을 만들어 놓고, 그것을 조립 조합하여 완성된 제품을 만듭니다. 2. 간단한 컴포넌트 구현 전에 포스팅했던 [리액트에서 사용하는 JSX]를 기반으로 작성해보겠습니다. 먼저 본인의 프로젝트 루트폴더(여기서는test_project)의 src폴더 안에 components폴.. 2020. 9. 11.
[React] 리액트에서 사용하는 JSX 2020.08.18 - [웹 프론트엔드/React 리액트] - [React] 리액트 개발환경 구축 2020.09.09 - [웹 프론트엔드/React 리액트] - [React] 리액트 테스트 앱 생성 및 수정 간단한 JSX 사용해보기 JSX (JavaScript XML)는 자바스크립트에 XML을 추가 확장한 문법입니다. HTML에서 XML로 다시 JS + XML이 바로 JSX입니다. 참 간단하죠? 상기한 테스트앱 생성 글을 기반으로 JSX 사용해보겠습니다. 먼저 App.js 파일을 열고 하기와 같이 수정합니다. // ..\test_project\src\App.js import React, { Component } from "react"; class App extends Component { render().. 2020. 9. 11.
[React] 리액트 테스트 앱 생성 및 수정 리액트 개발환경 구축이 안 된 분들은 아래 링크 참조 2020.08.18 - [웹 프론트엔드/React 리액트] - [React] 리액트 개발환경 구축 1. 테스트 프로젝트 생성 및 구동 예시는 윈도우 환경과 상기한 개발환경이 구축됐다는 전제로 쓰겠습니다. 먼저 명령 프롬프트(cmd)를 열고 하기와 같이 입력합니다.(프로젝트명은 test_project) yarn create react-app test_project 이런 식으로 기본 프로젝트 골격이 자동으로 완성됩니다. 그다음은 프로젝트 루트 폴더(test_project) 이동해서 yarn start 기본 포트는 3000번이지만 사용중일 경우 다른 포트 번호도 기동 가능합니다. 본인이 사용하는 기본 브라우저에 로컬호스트 주소로 위 화면처럼 나오면 성공! .. 2020. 9. 9.
[ES6] 전개 연산자(spread operator) 사용법 2020.09.05 - [웹 프론트엔드/자바스크립트] - [ES6] 객체 확장 표현(Destructuring) 및 구조 분해 할당 배열 전개 연산자 ES6에서 새로 나온 문법으로 굉장히 중요하면서 강력한 기능입니다. 기존 배열 요소를 다룰 때는 index를 사용해 풀어쓰거나, 내장 메서드를 사용했지만 전개 연산자를 사용하면 간단하게 내용을 전달하고 표현할 수 있습니다. 기존 배열 요소 사용법과 전개 연산자 도입 비교 // 기존 var array1 = [1, 2]; var array2 = [3, 4]; var arrayNew = [array1[0], array1[1], array2[0], array2[1]]; // ES6 var arrayNew = [...array1, ...array2];// 참 간단하죠.. 2020. 9. 5.