Fe-Dev/JavaScript

JavaScript
웹 스토리지(Web Storage) 중 로컬 스토리지(Local Storage)에 대해 간략하게 정리하는 글이다. 로컬 스토리지는 클라이언트의 브라우저에서 관리하는 저장소인데 세션 스토리지(Session Storage)와 차이점이 있다면 웹 페이지의 세션이 만료되면 데이터가 지워지는 세션 스토리지와 다르게 로컬 스토리지는 세션과 관계없이 만료일이 따로 없어 직접 삭제하지 않으면 영속성이 보장된다. 물론 동일한 PC에서 동일한 브라우저일때 보장이 되고 같은 웹사이트를 여러 창으로 띄웠을 때 창 별로 데이터를 관리하는 세션 스토리지와 다르게 로컬 스토리지는 창 간에 데이터가 공유되는 차이점도 있다. ✔︎ Local Storage 사용방법 1. 데이터 저장 로컬 스토리지에 저장되는 데이터는 기본적으로 key..
ES8에서 도입된 async/await에 대해 정리하는 글이다. 이전에 Promise를 사용하여 비동기처리를 하는 패턴에 대해 공부를 했었는데 이와 관련하여 비동기처리를 동기처럼 동작하도록 구현할 수 있는 async/await에 대해 알아보고자 한다. 기본적으로 async/await는 프로미스를 기반으로 동작한다. async/await를 사용하면 프로미스의 then/catch 등 후속처리메서드에 콜백함수를 전달해서 비동기 처리결과를 후속처리할 필요없이 마치 동기처럼 프로미스를 사용할 수 있다. 1. async async function hello() { return "hello"; } hello().then((res) => {console.log(res)}); async 함수는 반드시 promise를 반..
ES6에서 도입된 프로미스에 대해 간략히 정리하는 글이다. 자바스크립트는 비동기 처리 결과값을 상위 스코프로 가져갈 수 없기 때문에 비동기 처리를 하는 함수 내부에서 로직을 구현하거나 콜백 함수를 이용하여 결과값을 전달한다. function taskA(a, b, cb){ setTimeout(() => { const res = a + b; cb(res); }, 3000) } function taskB(a, cb){ setTimeout(() => { const res = a * 2; cb(res); }, 1000) } function taskC(a, cb){ setTimeout(() => { const res = a * -1; cb(res); }, 2000) } taskA(2, 3, (a_res) => { ..
ES6에서 도입된 spread 연산자에 대하여 간략하게 정리하는 글이다. 1. 결합의 기능 스프레드 연산자(...)는 배열, 문자열, 맵 등 과 같이 반복가능한 객체에 한하여 하나로 뭉쳐있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만들어주는데 두개의 같은 타입의 다른 값을 가진 데이터를 결합할 때 유용하게 쓰인다. // 배열에서의 spread let arr1 = [1, 2, 3, 4] // [1, 2, 3, 4]를 개별 요소로 분리한다. -> 1 2 3 console.log(...arr1) //1 2 3 4 // 2개의 배열을 한 개의 배열로 결합 let arr2 = [...arr1, 5, 6] console.log(arr2) // [1, 2, 3, 4, 5, 6] // 문자열에서의 spre..
템플릿 리터럴 사용법에 관한 간단한 정리를 위하여 작성하는 글이다. 템플릿 리터럴은 내장된 표현식을 허용하는 문자열 리터럴이다. 객체 리터럴에서의 사용법은 아래와 같다. const person = { name : "kihoon", age : "22", sayHi(){ return `Hi, my name is ${this.name} and ${this.age} years old.` } }; console.log(person.sayHi()); // Hi, my name is kihoon and 22 years old. 위와 같이 템플릿 리터럴은 작은 따옴표나 큰 따옴표 대신 백틱(``)을 사용하여 표출한다. ${표현식}을 이용하여 간단한 표현식을 넣는 것도 가능하다. 참고로 템플릿 리터럴 안에서 백틱을 사용..
ES6에서 도입된 화살표 함수(arrow function) 내부에서 사용되는 this에 대해 정리하는 글이다. 화살표 함수는 함수선언문으로 정의할 수 없고 함수표현식으로 정의해야 한다. 일반적인 사용법은 아래와 같다. const add = (x, y) => {return x + y}; add(2, 3); // 5 1) 매개변수가 한 개 인경우 소괄호()를 생략할 수 있다. 2) 매개변수가 없는 경우 소괄호()를 생략할 수 없다. 3) 함수 몸체가 하나의 문으로 구성된다면 함수 몸체를 감싸는 중괄호{}를 생략할 수 있다. -> 이때 함수 몸체 내부의 문이 값으로 평가될 수 있는 표현식인 문이라면 return을 작성하지 않아도 암묵적으로 return 한다. 4) 객체 리터럴을 반환하는 경우 객체 리터럴을 소..
react를 공부하면서 자연스레 ES6 공부도 같이 하게 되었다. 그 중 첫번째로 기초중에 기초이지만 변수선언의 방법에서부터 전 직장에서는 줄 곧 var를 사용하여 변수를 선언하였는데 ES6를 공부하게 되면서 var에는 여러가지 단점이 존재한다는 것을 알게되었고 이를 보안하기위해 ES6에서 부터 도입된 let, const가 var과 어떤 차이점이 있는지 짚고 넘어가고자 한다. 우선 var에 대해서 알아보자. 1) 함수레벨스코프 var는 함수레벨스코프를 지원하는데 함수레벨스코프란 함수 내에서 선언된 변수는 함수 내에서만 참조가 가능하며 외부에서는 참조가 불가능한 것을 말한다. 즉, 함수 외부의 제일 밖에서 선언된 var 변수는 전역변수이다. var result = 0; for (var i = 0; i < ..
kyuuuun
'Fe-Dev/JavaScript' 카테고리의 글 목록