목록IT/Javascript (14)
MJ.Story
자바크립트의 동기적 처리와 비동기 처리에 대해 알아보자 만약 작업을 동기적으로 처리한다면 작업이 끝날 때까지 기다리는 동안 중지 상태가 되기 때문에 다른 작업을 할 수 없습니다. 그리고 작업이 끝나야 비로소 그 다음 예정된 작업을 할 수 있죠. 하지만 이를 비동기적으로 처리를 한다면 멈추지 않기 떄문에 동시에 여러 가지 작업을 처리할 수도 있고, 기다리는 과정에서 다른 함수도 호출할 수 있습니다. function work() { const start = Date.now(); for (let i = 0; i < 1000000000; i++) {} const end = Date.now(); console.log(end - start + 'ms'); } work(); console.log('다음 작업'); 여..
Promise 자바스크립트는 비동기 처리를 위한 하나의 패턴으로 콜백함수를 사용한다. 하지만 전통적인 콜백 패턴은 콜백 헬로 인해 가독성이 나쁘고 비동기 처리 중 발생한 에러의 처리가 곤란하며 여러 개의 비동기 처리를 한번에 처리한는 데도 한계가있다 ES6에서는 비동기 처리를 위한 또 다른 패턴으로 프로미스를 도입했다 프로미슨느 전통적인 콜백 패턴이 가진 단점을 보완하며 비동기 처리 시점을 명확하게 표현할 수있다는 장점이 있다 프로미스는 Promise 생성자 함수를 통해 인스턴스화한다. Promies생성자 함수는 비동기 작업을 수행할 콜백 함수를 인자로 전달받는데 이 콜백 함수는 resolve와 reject함수를 인자로 전달 받는다. promise는 비동기 처리가 성공(fulfilled)하였는지 또는 실..
클로저 클로저는 둘러싸여진 상태의 참조와 함께 다발로 묶여진 함수의 콤비네이션이다. 바꿔말하면 클로저는 내부 함수로부터 외부함수의 접근권한을 준다. 클로저는 함수 생성 시점에 언제나 생긴다. // 24-1 const x = 1; function outerFunc() { const x = 10; function innerFunc() { console.log(x); } //
배열 자바스크립트에서 배열이란 관련 있는 데이터를 하나의 변수에 관리하기 위해 사용하는 데이터 타입이다. 자바스크립트는 명시적 타입이 없기때문에 하나의 배열은 여러 자료형을 가질 수 있는 특징이 있다. 유사배열 유사배열(Array-Like Object)이란 이름 그대로 배열과 유사한 객체를 말한다. 유사배열은 함수에서 처리 결과로 배열을 반환하고 싶을때 또는, Array에서 기본으로 내포되어있는 기능을 제공하고 싶지 않거나 Array에 내포되어있지 않은 기능을 제공하고싶을때 사용한다. JavaScript에서 유사배열을 사용하기 위해서는 몇 가지 조건을 성립해야한다 1.숫자 형태의 indexing이 가능할것 2.length속성을 포함할것 요소를 수정하는 방법 Array.from()메서드는 유사 배열 객체(..
실행 컨텍스트 실행 컨텍스트란? https://poiemaweb.com/js-execution-context 실행 컨텍스트(Execution Context)는 scope, hoisting, this, function, closure 등의 동작원리를 담고 있는 자바스크립트의 핵심원리이다. 실행 컨텍스트를 바로 이해하지 못하면 코드 독해가 어려워지며 디버깅도 매우 곤란해 질 것이다. ECMAScript 스펙에 따르면 실행 컨텍스트를 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이라고 정의한다. 좀 더 쉽게 말하자면 실행 컨텍스트는 실행 가능한 코드가 실행되기 위해 필요한 환경 이라고 말할 수 있겠다. 여기서 말하는 실행 가능한 코드는 아래와 같다. 전역 코드 : 전역 영역에 존재하는 코드 Eval 코..
실행 컨텍스트란? https://poiemaweb.com/js-execution-context 실행 컨텍스트(Execution Context)는 scope, hoisting, this, function, closure 등의 동작원리를 담고 있는 자바스크립트의 핵심원리이다. 실행 컨텍스트를 바로 이해하지 못하면 코드 독해가 어려워지며 디버깅도 매우 곤란해 질 것이다. ECMAScript 스펙에 따르면 실행 컨텍스트를 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이라고 정의한다. 좀 더 쉽게 말하자면 실행 컨텍스트는 실행 가능한 코드가 실행되기 위해 필요한 환경 이라고 말할 수 있겠다. 여기서 말하는 실행 가능한 코드는 아래와 같다. 전역 코드 : 전역 영역에 존재하는 코드 Eval 코드 : eval..
결론부터 말하자면 얕은 복사는 객체의 참조값(주소 값)을 복사하고, 깊은 복사는 객체의 실제 값을 복사합니다. 먼저, 자바스크립트에서 값은 원시값과 참조값 두 가지 데이터 타입의 값이 존재합니다. 원시값은 (단순한 데이터)을 의미합니다. Number, String, Boolean, Null, Undefined 등이 해당합니다. 변수에 원시값을 저장하면 변수의 메모리 공간에 실제 데이터 값이 저장됩니다. 할당된 변수를 조작하려고 하면 저장된 실제 값이 조작됩니다. 기본 자료형 참조값은 여러 자료형으로 구성되는 메모리에 저장된 입니다. Object, Symbol 등이 해당합니다. 변수에 객체를 저장하면 독립적인 메모리 공간에 값을 저장하고, 변수에 저장된 메모리 공간의 참조(위치 값)를 저장하게 됩니다. 그..
JavaScript - 배열에서 중복 제거, 4가지 방법 1. Set를 이용하요 중복제거 Set는 중복 데이터 저장을 허용하지 않는 자료구조 입니다. 이 특성을 이용하여 배열의 모든 요소를 Set에 추가하면 중복이 저절로 제거가 됩니다. new Set(arr)는 배열의 데이터가 추가된 Set 객체가 생성되며, 중복은 허용되지 않기 떄문에 1개의 요소만 추가됩니다. Set를 Array로 변경할 떄는 Spread operator를 이용하면 […set]처럼 간단하게 변환할 수 있습니다. 2 . fillter(),indexOf()를 이용하여 중복 제거 filter()와 indexOf()를 사용하여 중복을 제거 할 수 도 있다. indexOf(element)는 배열에서 요소의 index를 리턴하는데, 중복된 값이..