본문 바로가기

[JavaScript]24

[javascript] Promise Promise 프로미스란 비동기 처리에 사용되고 비동기 처리의 상태(성공, 실패 등)와 결과값을 반환하는 객체이다. 콜백 함수의 단점을 보완하기 위해 ES6에서 도입되었다. (프로미스는 함수에 콜백을 전달하는 대신 콜백이 첨부된 객체!) callback 함수 콜백 함수는 다른 함수의 인자로 호출되는 함수를 통칭한다. 프로미스가 등장하기 이전 자바스크립트에서 비동기 처리를 위한 하나의 패턴으로 콜백 함수를 사용하였다. 하지만, 콜백 함수를 사용하여 비동기 처리를 할 경우, 비동기 처리 중에 발생한 에러 처리가 곤란하였으며, 중첩된 비동기 처리를 위한 코드를 작성했을 때 콜백 지옥이 발생했다. 프로미스의 생성: 프로미스 생성자 함수로 프로미스 객체를 생성한다. 생성할 때 비동기 처리를 위한 콜백 함수를 인수.. 2022. 10. 25.
[javascript] Ajax Ajax란? Ajax란 자바스크립트를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다. ajax는 브라우저에서 제공하는 Web API인 XMLHttpRequest 객체를 기반으로 동작한다. XMLHttpRequest는 HTTP 비동기 통신을 위한 메서드와 프로퍼티를 제공한다. 기존의 웹페이지는 완전한 HTML을 서버로부터 전송받아 웹페이지 전체를 처음부터 다시 렌더링하는 방식으로 동작했다. 이러한 방식은 불필요한 데이터 통신을 야기했으며, 화면 전환 시에 깜박이는 현상을 초래했고, 클라이언트와 서버 사이의 통신이 동기 방식으로 동작하여 서버의 응답이 있을 때까지 다음 처리는 블로킹되었다. ajax 방식의.. 2022. 10. 25.
[javascript] Error Error 에러는 언제나 코드 곳곳에 도사리고 있다. 에러가 발생하지 않는 코드를 작성하는 것은 불가능하기에, 발생한 또는 발생할 에러에 대응하는 코드를 함께 작성해줘야 한다. console.log('시작'); foo(); // ReferenceError: foo is not defined // 강제 종료 console.log('끝'); // 에러로 프로그램이 강제 종료되어 이 코드는 실행되지 않는다. 1. try catch try ..catch (..finally) 문을 사용하여 프로그램이 강제 종료되지 않게 하고 코드를 실행시킬 수 있다. try { console.log('시작'); // 실행할 코드(에러 발생 여지가 있는 코드) //(1***1); // SyntaxError: Invalid or u.. 2022. 10. 14.
[javascript] ES6 최신 문법 4 _ 구조 분해 할당 Destructuring assignment & 단축 평가 Short-circuit evaluation 구조 분해 할당 Destructuring assignment 구조 분해 할당은 구조화된 배열과 같은 이터러블 또는 객체를 분해하여 1개 이상의 변수에 개별적으로 할당하는 것을 말한다. 배열 구조 분해 할당 1) 우변은 반드시 이터러블이어야 한다. 할당의 기준이 인덱스가 되기 때문이다. 변수의 개수와 이터러블 요소의 개수가 가 일치할 필요는 없다. const arr = [1, 2, 3, 4]; const [one, two, three] = arr; console.log(arr[0], arr[1], arr[2]); //1 2 3 console.log(one, two, three); //1 2 3 2) 기본값을 넣어 사용할 수도 있다. const point = [1, 2]; const [y, x, z = 0].. 2022. 10. 13.
[javascript] ES6 최신 문법 3 _ spread spread ... 스프레드는 하나로 뭉쳐 있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만드는 문법이다. 스프레드 문법을 사용할 수 있는 대상은 이터러블에 한정된다. let arr = [1, 2, 3, 4]; console.log(...arr); //1 2 3 4 let a = { ...arr }; let b = [...arr]; console.log(a); //{ '0': 1, '1': 2, '2': 3, '3': 4 } console.log(b); //[ 1, 2, 3, 4 ] let arr1 = [2, 3, 4]; let arr2 = [5, 6, 7]; let merged = arr1.concat(arr2); //ES5에서 배열 합치기 const newMerged = [...arr1, .. 2022. 10. 12.