일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Let
- 국비지원
- 반복문
- 프론트엔드
- 배열
- 자바스크립트
- 타입스크립트
- 코딩
- 제주코딩베이스캠프
- CSS
- 웹개발
- VAR
- 화살표함수
- JavaScript
- SS
- 멋사
- array
- 멋쟁이사자처럼
- 비동기
- 개발자
- for문
- 메소드체이닝
- likelion
- frontend
- useState
- 내일배움카드
- 이벤트루프
- 리액트
- react
- 네트워크
- Today
- Total
목록JavaScript 16
Ch.Covelope
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/bZe82a/btsw8YKEr4K/xVJMhT4tEkF7L6r4vwRWR0/img.png)
호출 스택, 실행 프로세스 복습 하기 호출 스택(call stack), 콜백 큐(callback queue), 이벤트 루프(event loop) 자바스크립트 코드가 실행되고 자바스크립트 엔진은 각각의 함수 호출을 호출 스택에 추가, call stack 에 푸시(push) 되고 , 실행이 완료되면 stack 에서 팝(pop)된다. 호출스택(call stack) 함수의 호출을 기록 하는 자료 구조 만약 함수가 동기적일 경우 해당 연산이 완료될 때까지 다른 모든 작업은 대기하게 된다. JS 엔진은 단일 스레드로 동작하기 때문에 한 번에 하나의 작업만 처리한다. 만약 함수가 비동기적일 경우 예를 들어 setTimeout 또는 fetch,promise 등 해당 연산은 백그라운에서 처리되는데 해당 함수들의 결과를 ..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/buwDwq/btsvmAquNUG/egIDFOzasTZsGHk6rRTuOk/img.png)
자바스크립트 엔진(javascript engine) JavaScript 엔진은 JavaScript 코드를 해석하고 실행하는 역할을 담당. 주요 JavaScript 엔진에는 V8(Chrome 및 Node.js에서 사용), SpiderMonkey(Firefox에서 사용), JavaScriptCore(Safari에서 사용), Chakra(이전 버전의 Microsoft Edge에서 사용)가 포함. 주요 역할 파서 (Parser): 자바스크립트 코드를 읽고 추상 구문 트리(Abstract Syntax Tree, AST)로 변환하는 역할을 한다. AST는 코드의 구조를 표현하며, 엔진은 이를 분석하여 실행에 필요한 정보를 추출한다. 인터프리터 (Interpreter): 변환된 AST를 실행 가능한 명령어로 해석하고..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/531go/btsdQOZh8wM/7dv4HW35o2vek6rzaQ0G9k/img.png)
자바스크립트에는 동기식과 비동기식이 있다. 동기식(Synchronous) 이란 단순하게 순서대로 실행되는데 1번이 실행되고 1번이 끝이 나면 2번이 실행되고 끝나면 그다음 작업들이 이런 과정으로 처리되는 것이다. 실행 순서가 보장되자만 한 번에 하나씩 처리 되기 때문에 한번에 여러 개의 작업이 불가능하다. 비동기식(Asynchronous) 이란 동기식과 다르게 먼저 실행된 작업이 끝날 때까지 기다리지 않고 다음작업을 시작할 수 있다. 한 번에 여러 일을 처리 할수 있다. 한번에 여러 가지 작업을 처리할 수 있지만 작업 순서가 보장되지 않는다. JavaScript 는 동기식 언어이다? 자바스크립트는 단일 스레드(싱글) 이다 . 메인 스레드인 이벤트 루프가 싱글 스레드 이기 때문이다. 하지만 이벤트 루프만 ..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/bc8Hbv/btrBIxHwaML/LocjkVIjELG5BKuAPeGuO0/img.png)
OOP - 객체지향 개념 정리 캡슐화 데이터와 데이터를 활용하는 함수를 캡슐 혹은 컨테이너 안에 두는 것을 의미하는데 이 경우 캡슐은 class를 의미한다. (함수와 데이터가 개념적으로 연관되어 있으면 캡슐화를 사용해서 코드를 개선할 수 있다.) 장점은 코드가 구조화되고 함수나 메서드가 인수를 취할 필요도 없다. (this키워드로 데이터에 직접 액세스 할 수 있기 때문) 캡슐화를 사용하여 표시할 클래스의 속성과 숨길 속성을 선택할 수 있다. 캡슐화는 어떻게 클래스 정보에 접근 혹은 수정하는지를 결정하는 권한을 제공한다. 캡슐화는 데이터 그리고 class 안에 있는 해당 데이터를 이용하는 함수를 잘 정리하는 방법론 상속 코드를 더 작은 단위로, class로 쪼개고 재사용할 수 있다. 클래스를 extends..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/8hrAc/btrAVtGRY9G/zjVgFnJjfnouojELiABnTk/img.png)
ES6 JavaScript - 요약 let & const Arrow Function Export & Imports Classes Spread & Rest Operator Destructuring Promises Default parameters Template Literals let & const let과 const 는 기본적으로 var 를 대체한다. 함수 스코프와 재선언 재할당이 가능한 var는 중복 선언이 가능하기 때문에 위에서 해당 변수를 선언하고 아래서 실수로 다시 사용할 경우 예상하지 못하는 전혀 다른 결과를 나타낼 수 있다. 그리고 함수 레벨 스코프로 인해서 for문을 예로 들면 for문이 함수 내부가 아닌 외부에서 돌아갈 경우 전역 변수로 역할을 하기 때문에 이 또한 예상치 못한 결과를 나올..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/dqXHDe/btrtutTroHS/ykMwPGqKNuVWbV38mcqME0/img.png)
Object.create() ES5 문법 중 하나인 프로토타입 상속 기능으로 간단하게 사용 가능하다. let parents = { name: "Oh", age: 50}; let child = Object.create(parents); console.log(child) let grandChild = Object.create(child); console.log(grandChild) 상속할 부모(parents)에 속성 데이터를 할당하고 첫 번째 자식(child)에게 Object.create(parents); 을 할당하여 부모의 속성을 상속한다. 그리고 콘솔을 출력하면 {} 이렇게만 출력되는데 그건 child에 가 따로 속성 값을 부여하지 않아서 이다. 하지만 더보기 버튼을 누르면 [[Prototype]] : ..