본문 바로가기

프로그래밍/JavaScript5

자바스크립트 클래스 클래스란? 클래스란 특정 집단을 묶기 위해 추상화 한 개념, 이 안에 속하는 것들을 인스턴스라고 함 프로그래밍에서 인스턴스에서 클래스들은 직계존속. 인스턴스를 생성할 때 호출할 수 있는 클래스는 오직 하나이기 때문. 자바스크립트의 클래스 인스턴스에 상속되는지에 따라 스태틱 멤버 인스턴스 멤버 로 구분됨 자바스크립트에서는 인스턴스에서도 직접 메서드를 정의할 수 있음. 그래서 인스턴스 메소드보단 프로토타입 메서드라고 부름 // 생성자 var Rectangle = function (width, height) { this.width = width; this.height = height; }; // prototype method Rectangle.prototype.getArea = function () { ret.. 2021. 8. 8.
그래서 콜백이 뭔데? 자바스크립트 CALL BACK 비동기 처리? 자바스크립트의 비동기 처리란 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성을 의미합니다. 콜백함수? 다른코드의 인자로 넘겨주는 함수. 콜백 함수는 다른 코드에게 인자로 넘겨줌으로써 그 제어권도 함께 위임한 함수 2. 제어권 2-1. 호출 시점 var count =0; var timer = setInterval(function(){ console.log(count); // clearInterval은 즉시 종료하란 의미 if(++count>4) clearInterval(timer); },300) // setInterval 구조 // func에는 실행 로직 , delay는 시간의 값 var intervalId = scope.setInte.. 2021. 8. 8.
자바스크립트는 싱글스레드일까? 메모 자바스크립트의 V8엔진은 싱글스레드임 자바스크립트는 단일 스레드 기반의 언어이지만 자바스크립트는 작업을 동시에 처리할 수 있음. 웹브라우저는 애니메이션 효과를 보여주면서 마우스 입력을 받아서 처리하거나, Node.js기반의 웹서버에서는 동시에 여러 개의 HTTP 요청을 처리하기도 한다. > 자바스크립트는 동시성을 지원하는 셈 > 이때 등장하는 개념이 이벤트 루프임 > 실제로 V8과 같은 자바스크립트 엔진은 단일 호출 스택(Call Stack)을 사용하며, 요청이 들어올 때마다 해당 요청을 순차적으로 호출 스택에 담아 처리할 뿐이다. 자바스크립트 엔진을 구동하는 환경, 즉 브라우저나 Node.js가 담당한다. !!!!!!!!!결론!! 자바스크립트는 싱글스레드인데 런타임이 싱글스레드가 아니라고 함 > .. 2021. 6. 27.
콜백함수 0625 콜백함수 비동기처리 콜백함수의필요성 loadScript('/my/script.js'); // script.js엔 "function newFunction() {…}"이 있습니다. newFunction(); // 함수가 존재하지 않는다는 에러가 발생합니다! 예를 들어 시간이 엄청 걸리는 처리를 자바스크립트한테 시켰는데 특정 코드를 실행시키고 그 다음걸 실행시켜야하는것임. 원래 자바스크립트한테 이걸 콜백처리를 안한채 그대로 시키면 시간이 긴 처리를 뒤로 보내버려서 그 다음코드를 실행시킨다면 에러가 나는데 이를 제어하는 것이 콜백함수인거임 loadScript > newFunction(loadScript안에있는) //이런게 콜백. 이런식으로 콜백선언을 하면 해결할수있음 loadScript('/my/scr.. 2021. 6. 27.
다른 라우터의 결과값이 불러와질때 해결법 오늘 해결한 문제인데 rest api를 사용해 개발을 하던중 이런식으로 url을 짜니까 /popularlist 의 결과값이 // 상품상세보기 productRouter.get("/:id", async (req, res) => { try { const product = await Product.findOneAndUpdate({ _id: req.params["id"] }, { $inc: { views: 1 } }, { __v: 0 }); res.json({ okay: true, result: product }); } catch (error) { res.send({ okay: false }); } };); // 실시간 인기상품 리스트 productRouter.get("/popularlist",async (req.. 2021. 4. 29.