console.log(add(2,5)) console.log(sub(2,5)) //함수 선언문 function add(x,y) { return x+y; } // ok //함수 표현식 const sub = function (x,y) { return x-y; } // bad 함수 선언문으로 정의한 함수는 함수 선언문 이전에 호출될 수 있다. 반면 함수 표현식으로 정의한 함수는 함수 표현식 이전에 호출할 수 없다. 이와 같은 이유는 함수 선언문으로 정의한 함수와 표현식으로 정의한 함수의 생성 시점이 다르기 때문이다. 모든 선언문 코드는 코드가 실행되는 시점인 런타임 이전에 자바스크립트 엔진에 의해 먼저 실행된다. 즉 선언문으로 정의한 함수는 런타임이전에 함수객체가 생성되는것. 이처럼 함수 선언문이 코드의 선두..
let studentA ={ name:"Mike", age:14, grade:"A-", study(){ console.log(`${this.name}은 공부중입니다.`) } } let studentB ={ name:"Kevin", age:14, grade:"C+", study(){ console.log(`${this.name}은 공부중입니다.`) } } let studentC ={ name:"Tom", age:14, grade:"B-", study(){ console.log(`${this.name}은 공부중입니다.`) } } 위와같이 구조가 똑같이 생긴 객체가 3개가 있다. 만약 학교에서 학생들을 이런식으로 관리한다면 수백,수천개를 만들어야해서 완전 노가다가 될것이다. 이럴때 필요한것이 class 이다 ..
자바스크립트 는 단일스레드 이다. 단일 스레드 (single thread)란 한번에 한가지 일밖에 처리할수없다는것을 의미한다. (다른 말로는 콜스택이 하나라고도한다) 자바스크립트 엔진 JS 엔진은 메모리 힙 (Memory Heap) 과 콜 스택(Call Stack) 으로 구성되어 있다. 메모리 힙(Memory Heap) 객체,변수,함수 등 할당된 메모리,데이터 등이 저장되는곳, 메모리 힙은 런타임 중 생성된 객체와 데이터를 저장하고 관리한다. 힙은 동적으로 크기가 조정되며 객체가 생성되거나 더 이상 참조되지 않는경우 가비지 컬렉션에 의해 해제된다. 가비지 컬렉션이란 더 이상 사용되지 않는 객체들을 자동으로 탐지하여 메모리를 해제하는 과정이다.이는 개발자가 명시적으로 메모리 관리에 신경쓰지 않아도 되는 장..