TypeScript&JavaScript/JavaScript(17)
-
Some & Every
'use strict' //some - true //const arr = [1, 2, 0, -1, -2]; //some - false const some = [1,2,0]; const result = some.some(key => key key > 1); console.log(res); //some -> 하나라도 조건에 해당하는게 있으면 true 반환 //every -> 모든 요소가 조건을 통과해야 true 반환 ES6 기준 Some과 Every는 배열 자..
2020.03.05 -
변수와 스코프
자바스크립트에서 변수를 선언하는 방식은 크게 var, let, const로 나뉜다. 현재는 ES6 이후의 문법이 크게 대중화 되어있고, var 보다는 let과 const를 사용하길 권장한다. 그 이유는 변수 스코프의 차이 및 선언, 호이스팅과 관련되어 있다. 작고 간단한 어플리케이션의 코드에서 var는 편리하다. 그러나 조금만 코드가 길어지고 어플리케이션이 복잡해지면, 암묵적 생략이나 함수 레벨 스코프를 이용하는 것은 오히려 독이 된다. let과 const는 기본적으로 블록 레벨 스코프로 다뤄진다. 해당 변수가 선언된 코드블록 내에서만 유효하며 외부에서는 참조할 수 없고, 블록 내에서 지역변수로 다뤄진다. 호이스팅의 경우, 인터프리터 언어인 자바스크립트에서 선언문이 호출보다 뒤에 나오더라도 스코프의 선두..
2020.02.28 -
자바스크립트 객체와 비구조화 할당
자바스크립트의 객체를 표현할 때는 JSON을 많이 활용한다. JSON은 이름 그대로 JavaScript Object Notation이다. 자바스크립트에서 객체를 만들 때 사용하는 표현식으로, 이해하기 편하고 용량이 작다. JSON은 데이터 포맷일 뿐이며 단순히 데이터를 표시하는 표현방법이다. const hero = { name: "superman", gender: "man", age: 20 } // ${hero.name} : "superman" 이런식으로 사용한다 name-value 형식의 쌍으로 이뤄지며, name-value에서 value는 Array로도 사용할 수 있다. 이 때에는 데이터를 대괄호 안에 넣고 쉼표로 구분짓는다. 이러한 객체를 표현하는 JSON 형태는 비구조화 할당이 가능한데, ES6에..
2020.01.26 -
비동기적 처리 다루기 - Promise, async, await, Promise all, race
비동기적 처리는 동기와 다르게 작업의 순서를 정확히 파악하기 어려움. 또한 비동기적 처리의 반환되는 값에 관하여 이어지는 이벤트와 함수를 연결한다고 하면 callback함수를 많이 활용하게 되어 가독성이 떨어지고 에러 컨트롤이나 조건에 따른 분기를 설정하기 어려운 부분이 있음. Promise는 resolve와 reject를 통해 분기를 나누고, Promise객체를 리턴함으로써 비동기처리를 콜백에 비해 간결하게 처리할 수 있음. 아래는 setTimeout을 이용한 비동기 처리에 대한 promise 예시. increaseAndPrint: (parameter) => { return new Promise(async (resolve, reject) => { setTimeout(() => { const value ..
2020.01.11 -
동기적 처리 // 비동기적 처리
동기적 처리 : 시간축을 기준으로 작업이 순차적으로 처리됨 (배치 프로세스를 생각) 가령, 다섯개의 작업이 있고 순서대로 일어난다고 가정하면 첫번째 작업이 끝난 결과를 받기 전에는 두번째 작업이 일어나지 않음. 비동기적처리 : 시간축과 상관없이 모든 프로세스(웹에서는 리퀘스트 요청 내지는 함수호출등)가 순차적으로 시작되지만 리턴을 기다리지 않음. 따라서 각 프로세스는 실행시간과 관련없이 동시에 가깝게 요청이 일어나고 종료시간은 각 프로세스의 소요시간에 따라 다르게 리턴을 받음(엄밀히 말해서 동시에 일어나는 것은 아님), 일종의 시분할 시스템 + 스케쥴링 알고리즘과 비슷하게 여겨짐
2020.01.11