본문 바로가기

분류 전체보기159

[JavaScript] 호출 스택과 이벤트 루프 호출 스택 함수가 호출() 될 때 호출스택에 들어간다고 생각하고 끝날 떄 }를 나간다고 생각하면 편하다. 다만 호출 스택으로 설명이 안되는 것이 있다 바로 setInterval(tick, 2000) 이다. 호출 스택, 백그라운드(노드 내부 엔진), 태스크 큐(백그라운드에서 보낸 콜백들이 실행 대기중)로 구성되어 있다 먼저 setInterval(tick, 2000) 함수가 호출스택에서 실행된다. 실행이 끝나면 호출스택에서 사라진다. 백그라운드에서 tick이 2초마다 호출스택에 다시 넣어준다. 호출스택에 넣어줘야 다시 실행이 되기 때문이다. 백그라운드에 여러개의 작업들이 들어가 있을 수 있다. ex) 이벤트리스너, 프로미스 등등 콜백함수가 비동기적으로 실행될 수 있게 대기중이다. 이벤트 루프: 무한루프처럼 .. 2020. 9. 19.
[JavaScript] for, forEach for 초깃값(index) 부터 시작해서 조건(condition)을 만족시킬 때까지 증가 또는 감소(final-expression)하면서 계속 반복합니다. for( 초기값; 조건; 증감;){ statement } for(var i = 0; i < 10; i++){ console.log(i); } forEach는 for문과 마찬가지로 반복적인 기능을 수행할 때 사용합니다. 하지만 for문처럼 index와 조건식, increase를 정의하지 않아도 callback 함수를 통해 기능을 수행할 수 있습니다. forEach forEach는 배열 객체 메서드 입니다. forEach는 for문과 마찬가지로 반복적인 기능을 수행하는데 사용합니다. 하지만 for문처럼초깃값(index) 와 조건(condition), 증가.. 2020. 9. 14.
[JavaScript] 생성자와 new 생성자 객체를 생성하는 함수를 생성자 함수라고 부릅니다. 다른 언어에서는 class가 있지만 자바스크립트에서는 없다 var prototype = { type: '카드' }; function Card(name, att, hp){ //생성자는 함수이다 대문자로 놓고 this.name = name; this.att = att; this.hp = hp; } Card.prototype = prototype; 생성자는 함수이다. 생성자를 만들 때는 대문자로 시작하는것이 규칙이다. 생성자를 바탕으로 실제 카드 객체를 만들 수 있다. new 이 때 new라는 키워드를 사용해서 만들게 되는데 new 생성자(인자) 형태로 만들면 된다. 위에 코드에서 this란 생성자 함수 자신을 가르킨다. this에 저장된 것은 new .. 2020. 9. 11.
[JavaScript] 프로토타입 프로토타입 var 프로토타입 = { // 공통되는 부분 type: '카드', attack: function() {}, defend: function() {}, }; function 카드공장(name, att, hp){ var 카드 = { // 달라지는 부분 name: name, att: att, hp: hp, } 카드.__proto__ = 프로토타입 // 객체이기 때문에 참조관계, 같은 부분은 같게가고 return 카드; } 만약 프로토타입을 이용하지 않고 카드의 type을 '카드'에서 '장난감'으로 바꿔야한다면 카드의 type을 '카드'에서 3만개 바꿔야한다고 가정하면 일일이 객체를 바꿔야한다. 하지만 공통된 부분을 프로토타입을 이용해서 중복을 최소화 할 수 있다. 프로토타입은 객체이기 때문에 참조 관.. 2020. 9. 10.