목록javascript (8)
개발일지
- 비동기 환경에서 실행하지만 실행이 끝나야 다음을 실행한다. - 즉, 실행은 비동기고 실행순서는 동기다. - async 는 키워드가 아니고 "async function" 이 키워드 개념이고 async 함수라고 부른다. - await 는 키워드 function create(param){ return new Promise((reslove) => { resolve(param); }); }; async function getPoint(option){ const value = await create(option);// 호출된 함수에서 promise 인스턴스를 반환해 비동기처리를 하게된다 log(value); }; getPoint({point: 100}); async 함수 - 비동기 함수를 뜻하며 AsyncFun..
all() - 파라미터의 모든 Promise() 처리를 완료했을 때 then() 의 핸들러 함수를 실행한다. - Promise.all() 형태로 작성한다. - 파라미터를 이터러블로 작성한다. : 작성한 순서대로 Promise 인스턴스 생성 - 실행자에서 실패가 발생했을 때 : reject() 가 발생한 시점에 then() 을 실행 function order(delay) { return new Promise((resolve) => { setTimeout(() => { log("실행자:" + delay); resolve(delay); }, delay); }); }; Promise.all([order(500).order(300), order(100)]).then((param) => log("then:" + p..
- 자바스크립트는 기본적으로 동기로 실행한다. (실행이 끝나야 다음 코드 실행) - Promise 는 비동기로 처리한다. - 코드를 연속으로 처리하지 않고 중간에 흐름이 끊어졌다가 연결된 코드를 처리할 수 있는 환경이 되었을 때 실행하겠다고 약속하는 느낌 (시멘틱) [ Promise 처리 흐름 ] const obj = new Promise((resolve, reject) => {// pending 상태 resolve(); log("Promise"); }); obj.then((value) => {// settled 상태 log("success"); }, (reason) => { log("fail"); }); log("last"); 위 코드 결과 Promise last success [ Promise 상태 ..
node 패키지를 설치할 때 npm 을 쓰는 사람도 있고 yarn 을 쓰는 사람이 있어 두개의 차이점이 뭔지 궁금하여 찾아본김에 정리해본다. 일단 우리팀은 yarn 을 사용한다. npm; node package manager yarn: 페이스북에서 만든 자바스크립트 패키지 매니저 아래와같이 속도, 안정성, 보안성의 차이점이 약간씩 있는것 같다. 1. Performance 속도 yarn: 다운받는 패키지 데이터를 캐시에 저장해 중복된 데이터는 다운받지 않고 캐시에 저장된 파일을 활용함으로써 이론적으로 npm에 비해 패키지 설치속도가 매우 빠르다. 여러개의 패키지를 설치할 때에는 병렬로 처리하기 때문에 속도가 빠르다. npm: 여러개의 패키지를 설치할 때 순차적으로 설치한다. 2. 안정성, 보안성 yarn:..
[package.json] -모든 npm 프로젝트는 루트에 package.json 파일을 포함하고 있다. -처음 프로젝트 만들 때 npm init 명령어로 package.json 파일을 만든다. -package.json 파일에는 프로젝트와 관련된 메타데이터를 작성한다. 주고받는 패키지에 대한 상세 설명서라고 할 수 있다. -협업을 위해 package.json 을 사용해 각자의 컴퓨터에 같은 패키지들을 성치하여 같은 개발환경을 구성할 수 있다. -그러나 몇가지 조건이 들어맞는 경우 같은 package.json 을 사용하여 npm install 을 하더라도 서로 다른 node_modules 를 생성하는 경우가 발생한다. -> package-lock.json 이 있는 이유 { "name": "@kwjs/scr..
변수 구분 - 로컬 변수, 글로벌 변수 - 변수를 구분하는 이유는? : 기능과 목적이 다르기 때문 - 글로벌 변수의 기능, 목적 : 다른 js 파일에서 변수값 공유 / 파일에서 공통 변수개념으로 사용 / 의도는 좋으나 처리속도가 떨어짐 - 로컬 변수의 기능 , 목적 : 빠르게 식별자를 해결하기 위해 가까운 스코프 변수를 사용하려는 것 ES6 부터는 use strict 디폴트 환경임 (전체는 아니지만 대부분..)
Built-in Object -> Function, Object, Array.. Object -> Built-in Object로 생성한 오브젝트, function book(){코드}, [1,2],{key, value} Instance -> new 연산자로 생성한 오브젝트, new Book(); property key 와 name 의 차이 -> property name: String / property key: String 과 Symbol (ES6 부터 구분해야 함) 함수, 메소드 구분 -> ES6: function, method, static method ex) Array.isArray(), Array.prototype.forEach()

“A promise is an object that may produce a single value some time in the future” 자바스크립트 비동기 처리에 사용되는 객체 (비동기 처리란 특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성) promise 왜 필요한지? : 비동기적인 함수 호출을 원하는대로 컨트롤하기 위해 (상태값 제공) promise 의 3가지 상태 1) Pending (대기) : 비동기 처리 로직이 아직 완료되지 않은 상태 / promise객체가 생성되어 사용될 준비가 된 2) Fulfilled (이행 [완료]) : 비동기 처리가 완료되어 promise 가 결과값을 반환해준 상태 / 비동기 처리에 의해 원하는 올바른 결과를 얻어..