본문 바로가기

전체 글37

막개발 시작 다시 돌아온 프로젝트! 프로젝트라하여 거창할 것 없다. 오랜만에 자바스크립트를 공부할 목적으로 시작하는 막개발 프로젝트. 막개발 : 일단 무엇이라도 만들기 시작하고 본다. 생각나는대로 만들기 시작하는 그 첫번째 프로젝트 랜덤영어단어장에 오신걸 환영합니다. 2022. 12. 7.
JavaScript 기초(31)_프로미스(2) reject 1. 프로미스의 활용 프로미스 객체를 만든 후에 어떻게 사용할까? 우선 아래와 같이 'p'에 다가 프로미스 객체를 할당할 수 있다. const p = new Promise((resolve, reject) => { /* pendding */ setTimeout(() => { resolve(); /* fulfilled */ }, 1000); }); p.then(() => { console.log('1000ms 후에 fulfilled 됩니다.'); }); [Running] 1000ms 후에 fulfilled 됩니다. 위 코드를 보면 'then()'을 활용하여 프로미스 객체가 할당된 p의 setTimeout 함수를 콜백 하여 출력하였다. 실제로 1000ms 뒤에 문자열에 출력됨을 확인 할 수 있다. 그러나 위의.. 2021. 10. 29.
JavaScript 기초(30)_프로미스(1) promise 1. promise의 3가지 상태 (대기, 이행, 거부) : 프로미스는 자바스크립트 비동기 처리에 사용되는 객체이다. 자바스크립트의 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미한다. 아래의 코드를 보면 따로 정의하지 않아도 promise가 내장되어 있음을 알 수 있다. console.log(Promise); [Running] [Function: Promise] 생성자를 통해서 프로미스 객체를 아래와 같이 만들 수 있다. new Promise(/* executor */ (resolve, reject) => {}); resolve와 reject 인자를 가지는 executor 함수를 통해서 생성할 수 있다. (물론 resolve, re.. 2021. 10. 28.
파이돈 오래간만에 조금 어려운(?) 독서를 했다. 예전부터 인문, 철학 분야의 책들을 많이 읽으려고 노력했지만 쉽지가 않아서 집에 있는 가장 작고 가장 얇은 책부터 시작했다. 결론은 잘못 걸렸다ㅠ 아직 독서량이 적어 독해력이 부족한 탓도 있지만 나에게는 쉽지 않은 책이었다. '파이돈'은 소크라테스의 제자(?) 중 하나이다. 소크라테스가 독배를 마시기 직전까지 제자들과 오갔던 대화를 기록한 책이다. 주요 내용은 '죽음', '사후세계', '영혼'에 대한 이야기이다. 우리가 흔히 말하는 3대 성인에는 예수, 부처, 소크라테스가 포함된다. 사실 개인적으로는 소크라테스가 성인이라는 느낌은 별로 없었는데 이 책을 통해 진정으로 성인 반열에 오른 이유를 알게 되었다. 이 세 성인의 공통점은 '죽음'을 겸허하게 아니 오히려 .. 2021. 10. 27.
JavaScript 기초(29)_클래스(4) static 1. static 변수, 함수 : 객체가 아닌, 클래스의 변수와 함수 다음의 코드를 보자. class A { static age = 31; static hello(){ console.log(A.age); } } console.log(A); console.log(A.age); A.hello(); [Running] [class A] { age: 31 } 31 31 클래스 A를 출력했을 때, [] 안에 클래스 이름이 나오며 {} 안에는 변수와 값이 출력된다. A.age로 접근하여 출력했을 때도 31이 정상 출력되며 A.hello()로 hello() 함수에 접근하여도 31이 정상 출력된다. 그렇다면 위 코드에서 'static'을 제거하면 어떻게 될까? class B { age = 31; hello(){ cons.. 2021. 10. 26.
JavaScript 기초(28)_클래스(3) get과 set 1. get과 set 아래의 코드를 통해서 get과 set의 쓰임을 알아보자. class A { _name = 'no name'; get name(){ return this._name + '@@@'; } set name(value){ this._name = value + '!!!' } } const a = new A(); console.log(a); a.name = 'Kim'; console.log(a); console.log(a.name); console.log(a._name); Running] A { _name: 'no name' } A { _name: 'Kim!!!' } Kim!!!@@@ Kim!!! 맨 먼저 클래스 A를 가지는 객체 a를 생성해주었다. 그대로 a를 출력했을 때는 초기값으로 설정된 .. 2021. 10. 25.