본문 바로가기

javascript30

엘리스 SW 3기 1차 프로젝트 - 3~14일차 정신없이 코드만 치느라 미루고 미뤄뒀던 회고록,,,, sessionStorage는 저장소라고 하니 괜히 막막했는데 알고 보니 껌인 애였다. 뭐든 처음 보는 것에 긴장하는 습관을 버려야겠다. 막판에 메인 페이지에는 localStorage를 활용한 코너도 넣었다. daum 주소 검색 기능을 회원가입 폼에 붙여보았다. 외부 기술을 가져다 쓰는 거라 어떨지 겁이 났는데 내부에서 기능 구현을 하는 것보다 훨~씬 간편했다. 카카오페이 결제 기능도 넣어봤으면 하는 아쉬움이 남았다. 장바구니 함수를 짜는데 계속 거르지 못하는 부분이 있고, 에러가 발생하는 곳이 있어 js 파일을 여러 번 갈아엎었다. 이렇게 복잡하게 엮인 페이지를 구현하기 전에 조직도 혹은 구상도를 미리 짜 보고 구현하는 것이 좋겠다. 할인 코너에 카운.. 2022. 11. 14.
[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.