Study/JavaScript

    [JavaScript_study] Promise static method

    [ Promise static method ] [ 참고 사이트 ] https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise/all * promise.all() 병렬적으로 한번에 모든 Promise들을 실행! error가 폼한된것까지 묶어서 Promise.all()을 할 경우 error가 발생하면서 출력이 되지 않는다. * promise.race() 주어진 Promise중에 제일 빨리 수행되는 값이 출력된다. * promise.allSettled() 성공하든 실패하든 그 결과를 배열로 묶어서 출력해준다. 배열 indexing를 이용하여 원하는 값을 선택하여서 출력해줄 수 있다. ex) fruits[0].stat..

    [JavaScript_study] 프로미스(Promise)

    * callback를 대체할 수 있는 Promise 무겁고, 오래걸리는 일이 있다면 우리코드 내부에서 조금 더 비동기적으로 처리할 수 있게 도와준다. 일이 끝나면 수행하줄게!! then(일이 끝난뒤 등록) // catch(에러발생) // finally(최종적으로 모든일이 끝났을때) Promise를 쓰게되면 resolve, reject라는 파라미터를 받아온다. 성공 : resolve, 실패 : reject // Promise를 쓰게되면 resolve, reject라는 파라미터를 받아온다. // 성공 : resolve, 실패 : reject // 함수에 대해 필요한 요소만 전달한다. function runInDelay(seconds) { return new Promise((resolve, reject) =>..

    [JavaScript_study] 자바스크립트의 작동 원리

    [JavaScript_study] 자바스크립트의 작동 원리

    * 자바스크립트의 실행 순서 (콜스택) 자바스크립트 런타임 환경이라면 항상 자바스크립트 엔진이 탑제되어 있다. 그래서 소스코드를 자바스크립트 엔진이 이해하고 번역해서 실행하는것이다. 소스코드에서 동적으로 객체를 생성하는 경우에는 Memory Heap에 생성이 된다. 대부분 구조화되지 않는 '더미'같은 메모리 영역을 'heap'라고 표현한다. Call Stack는 우리의 함수 실행순서를 기억한다. Call Stack을 이용해서 어디에서 실행되었는지 어디로 돌아가야되는지를 확인한다. Call Stack는 하나의 싱글 컨텍스트 스택을 가지고 있다(한번에 하나의 일만 처리 가능) 이를 싱글 쓰레드(Single Thread)라고 한다. 단 하나의 스트림으로만 한가지의 일을 한번에 처리 가능 자바스크립트는 기본적으..

    [JavaScript_study] 모듈 (module)

    * 모듈(module)이란? JS파일별로 캡슐화를 하는것 모듈은 단지 파일 하나에 불과합니다. 스크립트 하나는 모듈 하나입니다. 모듈에 특수한 지시자 export와 import를 적용하면 다른 모듈을 불러와 불러온 모듈에 있는 함수를 호출하는 것과 같은 기능 공유가 가능합니다. script 태그의 attribute에 type="module"를 추가해주어서 모듈화를 해준다. export default는 모듈에서 딱 하나만 지정해줄 수 있으면 import를 해줄때 작명을 마음대로 해도된다. 여러가지를 내보낼때는 export를 이용해야한다. import { export명 동일하게 } as를 통해서 원하는 이름으로 변경도 가능하다. // import { export명 동일하게 as 내가원하는이름 } get, s..

    [JavaScript_study] error-bubbling

    * error-bubbling 예시 코드 // Bubbling up, Propagating 🧼 function a() { throw new Error('error!'); } function b() { try { a(); } catch (error) { console.log('생각해보니깐 이 에러는 내가 핸들링 할 수 없을 것 같군!'); throw error; } } function c() { b(); } try { c(); } catch (error) { console.log('Catched!'); } console.log('done!');

    [JavaScript_study] 에러 핸들링(error-handling)

    * try catch finally try : 실행될 선언들 catch : 블록에서 예외가 발생했을 때 실행될 선언들 finally : 선언이 완료된 이후에 실행된 선언들. 이 선언들은 예외 발생 여부와 상관없이 실행된다. // try catch finally // throw error를 하게되면 밑의 코드는 실행되지않고 app crashed가 발생한다. function readFile(path) { // throw new Error('파일 경로를 찾을 수 없음'); return '파일의내용'; } function processFile(path) { let content; try { content = readFile(path); } catch (error) { console.log(error); cont..